1. Grâce à ce formulaire vous pouvez proposer une astuce ou un script sur R.
  2. Votre script doit pouvoir être lancé en l'état. Veuillez penser à :
    • inclure le chargement des "library" nécessaires
    • construire un petit jeu de données si besoin est.
    • commenter les lignes de codes pour en faciliter la compréhension.
  3. Le titre de votre script ou astuce doit être clair et explicite.
  4. Pensez à mettre votre code entre les balises [R] et [/R]; Pour cela, vous pouvez utiliser le bouton

Vous pouvez utiliser vos comptes Facebook, twitter ou google pour vous identifer (google est compatible yahoo, openID...)
L'ideal étant de vous connecter si vous avez un compte utilisateur, ou faire une demande de compte utilisateur si vous n'en avez pas encore.
Créer un compte va vous permettre de pouvoir éditer vos codes et de mettre en avant votre site internet.
Sinon vous pouvez soumettre anonymement en remplissant les champs ci-après.







Choisissez les catégories correspondantes à votre Code:

  • algorithmique
  • Analyse de survie
  • base indispensable
  • bayésien
  • configuration de R
  • exportation de données
  • fonctions utiles
  • graphique
  • importation de données
  • inférence
  • manipulation de données
  • message d'erreur
  • modélisation
  • Non classé
  • optimisation
  • planification
  • programmer avec R
  • regression linéaire
  • Test
  • tidyverse
  • Transformation de données


graphique

Comment créer un diagramme circulaire avec ggplot2 ? coord_polar()

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Vous en avez assez des digrammes en barres et des lignes ? Alors laissez-vous tenter par les diagrammes circulaires !

Pour transformer votre graphe en diagramme circulaire, ajoutez l’argument coord_polar() à votre ggplot !

library(ggplot2)
data(diamonds)
ggplot(diamonds, aes(cut)) + 
  geom_bar() + 
  coord_polar()
Pas encore de commentaire, cliquez ici pour réagir.

Comment changer l’échelle d’un axe contenant une date dans ggplot2 ? scale_x_date(break)

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Vous souhaitez ne garder que les mois, ou uniquement les années sur votre ggplot ? Vous avez envie de changer le format des étiquettes de l’axe ? Pour cela, direction la fonction scale_x_date(), qui vous permettra de personnaliser votre axe comme vous le souhaitez !

Dans la majorité des cas, vous serez amené à utiliser deux arguments principaux sur scale_x_date (mais il faut savoir qu’il en existe au total 9) :

  • date_breaks, pour la durée entre chaque point principal de l’axe
  • date_label, pour définir le formatage de l’affichage de la légende
library(tidyverse)
library(ggplot2)
library(nycflights13)
data %
  unite(date, year, month, day, sep = "-") %>%
  mutate(date = lubridate::ymd(date)) %>%
  group_by(date) %>%
  summarise(count = n())
ggplot(data, aes(date, count)) + 
  geom_line() +
  scale_x_date(date_breaks = "2 months", date_labels = "%b")

À noter que cette fonction s’adapte aux différents formats de date de votre jeu de données, ainsi qu’à l’axe que vous souhaitez modifier — scale_y_date, scale_x_datetime, scale_y_datetime, scale_x_time, scale_y_time.

Pas encore de commentaire, cliquez ici pour réagir.

Comment changer l’emplacement de la légende avec ggplot2 ? theme(legend.position)

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
Vous n’avez plus envie de voir vos légendes sur la droite ? Vous mourrez d’envie de pouvoir personnaliser encore plus votre graphique ? Faites appel à la fonction theme(), et à son argument legend.position — ce dernier vous permet de placer la légende sur le bord que vous désirez.
library(ggplot2)
data("iris")
ggplot(iris, aes(x= Sepal.Length, y = Sepal.Width, col = Species)) + 
  geom_point() + 
  theme(legend.position = "bottom")
Les cinq arguments possibles sont les quatre bords, ainsi que la position none, pour faire disparaitre la légende.
theme(legend.position = "left")
theme(legend.position = "right")
theme(legend.position = "bottom")
theme(legend.position = "top")
theme(legend.position = "none")
Pas encore de commentaire, cliquez ici pour réagir.

Comment gérer les titres de mon graphe ggplot ? labs()

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
La fonction labs(), à utiliser pendant la construction de votre ggplot, vous permet d’intégrer titre, sous-titres, et légendes.
ggplot(iris, aes(Sepal.Width, Sepal.Length)) +
  geom_point() + 
  labs(title = "Mon titre", 
       subtitle = "Mon sous titre \n sur deux lignes", 
       caption = "Ma légende", 
       x = "Mon axe x",
       y = "Mon axe y")
Pas encore de commentaire, cliquez ici pour réagir.

Comment changer la couleur de fond de mon ggplot ? theme(plot.background =)

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
Pour modifier la couleur de fond de votre graphique avec ggplot, utilisez l’argument suivant dans votre theme() :
library(ggplot2)
ggplot(iris, aes(Sepal.Width, Sepal.Length)) +
  geom_point() + 
  theme(plot.background = element_rect(fill = "pink"))
Pas encore de commentaire, cliquez ici pour réagir.

Comment se construit un graphique avec ggplot2 ?

0
dans graphique, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Package de dataviz du tidyverse, ggplot2 est l’incontournable R pour la visualisation de données. La force de ce module ? ggplot2 repose sur une « grammaire graphique ». Pour plus d’infos sur cette philosophie, rendez-vous sur les liens en bas de page.

Construisons pas à pas un ggplot.

1. Installation

install.packages("ggplot2")
#Ou pour la version en développement :
devtools::install_github("tidyverse/ggplot2")

2. Ouverture

library("ggplot2")

3. Couche 1 : « data & aesthetics »

Avec cette première ligne, il s’agit tout simplement d’indiquer l’objet contenant le jeu de données, et les variables qui vont être visualisées en x, en y, ou avec les couleurs, les tailles…

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species ))

4. Couche 2 : « geom »

Ensuite, vous choisissez l’élément géométrique avec lequel vous souhaitez visualiser vos données (point, bar, histogram…).

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species )) + 
 geom_point()

5. Couche 3 : « scale »

Cette couche contrôle la projection de vos données, par exemple au niveau des couleurs.

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
 geom_point() +
 scale_color_manual(values = c("#45B8D2", "#E66A41", "#88878C"))

6. Couche 4 : « coord »

Ici, vous pouvez gérer le système de coordonnées de votre graphique. Le plus courant ? Le système cartésien, utilisé nativement dans ggplot2. 

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
 geom_point() +
 scale_color_manual(values = c("#45B8D2", "#E66A41", "#88878C")) + 
 coord_cartesian()

Vous pouvez également choisir un système de carte, avec coord_map().

7. Couche 5 : « facet »

Pour plus de lisibilité, vous pouvez séparer votre graphique en plusieurs sous graphiques, chacun correspondant à un facteur de votre jeu de données.

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
 geom_point() +
 scale_color_manual(values = c("#45B8D2", "#E66A41", "#88878C")) + 
 coord_cartesian() + 
 facet_wrap(~Species)

8. Couche 6 : « theme »

Deux solutions quant aux thèmes : utiliser un thème natif, ou créer le vôtre ! Le guide de la création est disponible sur le site de ggplot2(http://ggplot2.tidyverse.org/reference/theme.html).

ggplot(data = iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
 geom_point() +
 scale_color_manual(values = c("#45B8D2", "#E66A41", "#88878C")) + 
 coord_cartesian() + 
 facet_wrap(~Species) + 
 theme_bw()

En savoir plus :

La documentation officielle : http://ggplot2.tidyverse.org/reference/
Le site officiel : http://ggplot2.org/
L’ouvrage de Hadley Wickham : https://www.amazon.com/dp/0387981403/ref=cm_sw_su_dp
Le R Graphic Cookbook : https://www.amazon.com/dp/1449316956/ref=cm_sw_su_dp?tag=ggplot2-20
La cheatsheet traduite en français : http://www.thinkr.fr/aide-memoire-ggplot2/

Pas encore de commentaire, cliquez ici pour réagir.

Comment tracer la courbe d’une fonction connue dans un intervalle donné ? curve()

0
dans fonctions utiles, graphique
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
R peut tracer la courbe d’une fonction f(x) pour peu qu’on connaisse sa formule et qu’on lui fixe des bornes.
 curve(expr=1/(sqrt(2*pi)*0.3)*exp(-((x-0)^2/(2*0.3^2))), from=-1.5, to= 1.5)
La fonction curve() prend (entre autres) comme argument expr (l’expression de la fonction, ici la densité de probabilité de la loi normale), from (la borne inférieure de l’intervalle à tracer) et to (la borne supérieure de l’intervalle à tracer) Par défaut curve() utilise un paramètre n fixé à 101 : c’est le nombre de x compris entre from et to qui seront évalués par l’expression renseignée dans expr. Plus n est petit, plus la courbe sera « anguleuse »

Proposé par Diane.

Pas encore de commentaire, cliquez ici pour réagir.

Comment tracer un histogramme dans R ? hist

0
dans graphique
- ça ne sert à rien -- c\'est interessant - (score de 0 sur 2 votes)
Loading ... Loading ...
la fonction hist permet de tracer rapidement et facilement un histogramme. Cette fonction prend un vecteur en parametre.
 
data(iris)
 hist(iris$Sepal.Length) 
 hist(iris$Sepal.Length,nclass=3) 
 

Proposé par Vincent.

Pas encore de commentaire, cliquez ici pour réagir.

Comment sauver un graphique en pdf? pdf

0
dans graphique
- ça ne sert à rien -- c\'est interessant - (score de +21 sur 21 votes)
Loading ... Loading ...
R vous permet de sauvegarder directement vos graphique en pdf. Vous pouvez ainsi choisir les dimensions du fichier et obtenir la qualité voulue. Pour cela il suffit d’utiliser la fonction pdf. Les nombreux arguments de la fonction permettent de choisir de nombreux paramètres: ?pdf.
Un exemple:


 
 
 setwd("D:/R/image") #on choisit le répertoire
 
#pour l'exemple on trace la croissance radiale d'une plante
 
 host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}
time<-c(0:200)
 
# on utilise la fonction pdf avant le graphique
 
pdf("croissance_plante.pdf", height=10,width=10) #les tailles sont à 7 par défaut
 
#on trace le graphique
 
par(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)
plot(host(time)~time,type='l',lwd=4.5,col="grey",ylab="Plant radius (cm)",
    xlab="",ylim=c(0,5))
abline(h=1.1,col='gray10',lty=3)
abline(v=50,col='gray10',lty=3)
abline(h=3.15,col='grey',lty=3)
abline(v=100,col='grey',lty=3)
arrows(100,1.1,100,3.15,col='red',lwd=4,code=3)
arrows(50,1.1,100,1.1,col='black',lwd=4,code=3)
 
 #on ferme le graphique
 
dev.off()
 
#le pdf se situe dans votre répertoire
 
 


Notez qu’il est possible de sauver vos graphique sous de nombreux formats en utilisant des fonctions similaires comme jpeg(), tiff(), png(), bmp()….


Proposé par Melen Leclerc.

Pas encore de commentaire, cliquez ici pour réagir.

Comment ajouter du texte sur un graphique? text

1
dans graphique
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
R vous permet d’ajouter du texte à vos graphique en utilisant la fonction text. Il vous suffit de fournir les coordonnées du point où le texte doit être affiché. Si vous n’en avez aucune idée n’hésitez pas à utiliser la fonction locator() pour vous repérer.
Un exemple:

 
 
 host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}
time<-c(0:200)
 
 
par(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)
plot(host(time)~time,type='l',lwd=4.5,col="grey",ylab="Plant radius (cm)",
    xlab="",ylim=c(0,5))
abline(h=1.1,col='gray10',lty=3)
abline(v=50,col='gray10',lty=3)
abline(h=3.15,col='grey',lty=3)
abline(v=100,col='grey',lty=3)
arrows(100,1.1,100,3.15,col='red',lwd=4,code=3)
arrows(50,1.1,100,1.1,col='black',lwd=4,code=3)
 
# on ajoute du texte en face des flèches en choisissant la couleur et la taille avec col et cex
 
text(150,2.2," croissance radiale",col='red',cex=1.5)
text(75,0.5,"dt",cex=1.5)
 
 


Proposé par Melen Leclerc.

1 commentaire. Cliquez ici pour réagir.
Formation logiciel R