ggplot2 - Guide rapide

ggplot2 est un package R spécialement conçu pour la visualisation de données et pour fournir la meilleure analyse exploratoire des données. Il fournit de belles parcelles sans tracas qui prennent soin des détails infimes comme dessiner des légendes et les représenter. Les tracés peuvent être créés de manière itérative et modifiés ultérieurement. Ce package est conçu pour fonctionner en couches, en commençant par une couche montrant les données brutes collectées lors de l'analyse exploratoire des données avec R puis en ajoutant des couches d'annotations et de résumés statistiques.

Même les utilisateurs de R les plus expérimentés ont besoin d'aide pour créer des graphiques élégants. Cette bibliothèque est un outil phénoménal pour créer des graphiques en R, mais même après de nombreuses années d'utilisation quasi quotidienne, nous devons toujours nous référer à notre aide-mémoire.

Ce paquet fonctionne sous une grammaire profonde appelée «Grammaire des graphiques» qui est composée d'un ensemble de composants indépendants qui peuvent être créés de plusieurs manières. La «grammaire des graphiques» est la seule raison qui rend ggplot2 très puissant car le développeur R n'est pas limité à un ensemble de graphiques pré-spécifiés qui sont utilisés dans d'autres packages. La grammaire comprend un ensemble simple de règles et de principes fondamentaux.

En 2005, Wilkinson a créé ou plutôt créé le concept de grammaire des graphiques pour décrire les caractéristiques profondes qui sont incluses entre tous les graphiques statistiques. Il se concentre sur les couches primaires qui incluent l'adaptation des fonctionnalités intégrées avec R.

Relation entre «Grammaire des graphiques» et R

Il indique à l'utilisateur ou au développeur qu'un graphique statistique est utilisé pour mapper les données sur des attributs esthétiques tels que la couleur, la forme, la taille des objets géométriques concernés tels que les points, les lignes et les barres. Le tracé peut également contenir diverses transformations statistiques des données concernées qui sont dessinées sur le système de coordonnées mentionné. Il comprend également une fonction appelée «Faceting» qui est généralement utilisée pour créer le même graphique pour différents sous-ensembles de l'ensemble de données mentionné. R comprend divers ensembles de données intégrés. La combinaison de ces composants indépendants comprend totalement un graphique particulier.

Concentrons-nous maintenant sur différents types de tracés qui peuvent être créés en référence à la grammaire -

Les données

Si l'utilisateur souhaite visualiser l'ensemble donné de mappages esthétiques qui décrit comment les variables requises dans les données sont mappées ensemble pour la création d'attributs esthétiques mappés.

Couches

Il est composé d'éléments géométriques et de la transformation statistique requise. Les couches comprennent des objets géométriques, des géomes pour des données courtes qui représentent réellement le tracé à l'aide de points, de lignes, de polygones et bien d'autres. La meilleure démonstration consiste à classer et à compter les observations pour créer l'histogramme spécifique pour résumer la relation 2D d'un modèle linéaire spécifique.

Balance

Les échelles sont utilisées pour mapper les valeurs dans l'espace de données utilisé pour la création de valeurs, qu'il s'agisse de couleur, de taille et de forme. Il permet de dessiner une légende ou des axes nécessaires pour fournir une cartographie inverse permettant de lire les valeurs de données d'origine à partir du tracé mentionné.

Système de coordonnées

Il décrit comment les coordonnées des données sont mises en correspondance avec le plan mentionné du graphique. Il fournit également des informations sur les axes et les quadrillages nécessaires à la lecture du graphique. Normalement, il est utilisé comme système de coordonnées cartésiennes qui comprend des coordonnées polaires et des projections cartographiques.

Facettes

Il comprend des spécifications sur la manière de diviser les données en sous-ensembles requis et d'afficher les sous-ensembles en tant que multiples de données. Ceci est également appelé processus de conditionnement ou de treillisage.

Thème

Il contrôle les points d'affichage les plus fins tels que la taille de la police et les propriétés de couleur d'arrière-plan. Pour créer une parcelle attrayante, il est toujours préférable de considérer les références.

Maintenant, il est également tout aussi important de discuter des limitations ou des fonctionnalités que la grammaire ne fournit pas -

  • Il manque la suggestion des graphiques à utiliser ou un utilisateur est intéressé à faire.

  • Il ne décrit pas l'interactivité car il ne comprend que la description des graphiques statiques. Pour la création de graphiques dynamiques, une autre solution alternative doit être appliquée.

Le graphique simple créé avec ggplot2 est mentionné ci-dessous -

Les packages R sont livrés avec diverses fonctionnalités telles que l'analyse d'informations statistiques ou la recherche approfondie de données géospatiales ou, simplement, nous pouvons créer des rapports de base.

Les packages de R peuvent être définis comme des fonctions R, des données et du code compilé dans un format bien défini. Le dossier ou répertoire dans lequel les packages sont stockés est appelé la bibliothèque.

Comme visible dans la figure ci-dessus, libPaths () est la fonction qui vous affiche la bibliothèque qui se trouve, et la bibliothèque de fonctions montre les packages qui sont enregistrés dans la bibliothèque.

R comprend un certain nombre de fonctions qui manipulent les packages. Nous nous concentrerons sur trois fonctions majeures qui sont principalement utilisées, ce sont -

  • Installation du package
  • Chargement d'un package
  • En savoir plus sur le package

La syntaxe avec la fonction pour installer un package dans R est -

Install.packages(“<package-name>”)

La simple démonstration de l'installation d'un package est visible ci-dessous. Considérez que nous devons installer le package «ggplot2» qui est la bibliothèque de visualisation de données, la syntaxe suivante est utilisée -

Install.packages(“ggplot2”)

Pour charger le package particulier, nous devons suivre la syntaxe mentionnée ci-dessous -

Library(<package-name>)

La même chose s'applique pour ggplot2 comme mentionné ci-dessous -

library(“ggplot2”)

La sortie est représentée dans l'instantané ci-dessous -

Pour comprendre le besoin du package requis et des fonctionnalités de base, R fournit une fonction d'aide qui donne le détail complet du package qui est installé.

La syntaxe complète est mentionnée ci-dessous -

help(ggplot2)

Dans ce chapitre, nous nous concentrerons sur la création d'un graphique simple à l'aide de ggplot2. Nous utiliserons les étapes suivantes pour créer le tracé par défaut dans R.

Inclusion de la bibliothèque et du jeu de données dans l'espace de travail

Incluez la bibliothèque dans R. Chargement du package nécessaire. Nous allons maintenant nous concentrer sur le package ggplot2.

# Load ggplot2 
library(ggplot2)

Nous implémenterons un jeu de données à savoir «Iris». L'ensemble de données contient 3 classes de 50 instances chacune, où chaque classe se réfère à un type de plante iris. Une classe est linéairement séparable des deux autres; ces derniers ne sont PAS linéairement séparables les uns des autres.

# Read in dataset
data(iris)

La liste des attributs inclus dans l'ensemble de données est donnée ci-dessous -

Utilisation des attributs pour l'exemple de parcelle

Le traçage du tracé du jeu de données iris avec ggplot2 de manière plus simple implique la syntaxe suivante -

# Plot
IrisPlot <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) 
   + geom_point()
print(IrisPlot)

Le premier paramètre prend l'ensemble de données en entrée, le second paramètre mentionne la légende et les attributs qui doivent être tracés dans la base de données. Dans cet exemple, nous utilisons la légende Espèce. Geom_point () implique un diagramme dispersé qui sera discuté plus tard en détail.

La sortie générée est mentionnée ci-dessous -

Ici, nous pouvons modifier le titre, l'étiquette x et l'étiquette y, ce qui signifie les étiquettes de l'axe x et de l'axe y au format systématique comme indiqué ci-dessous

print(IrisPlot + labs(y="Petal length (cm)", x = "Sepal length (cm)") 
   + ggtitle("Petal and sepal length of iris"))

Lorsque nous parlons d'axes dans les graphiques, tout tourne autour des axes x et y qui sont représentés de manière bidimensionnelle. Dans ce chapitre, nous nous concentrerons sur deux ensembles de données «Plantgrowth» et «Iris», qui sont couramment utilisés par les scientifiques des données.

Implémentation d'axes dans le jeu de données Iris

Nous utiliserons les étapes suivantes pour travailler sur les axes x et y en utilisant le package ggplot2 de R.

Il est toujours important de charger la bibliothèque pour obtenir les fonctionnalités du package.

# Load ggplot
library(ggplot2)

# Read in dataset
data(iris)

Création des points de tracé

Comme discuté dans le chapitre précédent, nous allons créer un tracé avec des points. En d'autres termes, il est défini comme un diagramme dispersé.

# Plot
p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
p

Maintenant, comprenons la fonctionnalité d'aes qui mentionne la structure de mappage de «ggplot2». Les mappages esthétiques décrivent la structure des variables qui est nécessaire pour le traçage et les données qui doivent être gérées dans un format de couche individuel.

La sortie est donnée ci-dessous -

Mettre en évidence et cocher les marques

Tracez les marqueurs avec les coordonnées mentionnées des axes x et y comme indiqué ci-dessous. Il comprend l'ajout de texte, la répétition de texte, la mise en évidence d'une zone particulière et l'ajout d'un segment comme suit -

# add text
p + annotate("text", x = 6, y = 5, label = "text")

# add repeat
p + annotate("text", x = 4:6, y = 5:7, label = "text")

# highlight an area
p + annotate("rect", xmin = 5, xmax = 7, ymin = 4, ymax = 6, alpha = .5)

# segment
p + annotate("segment", x = 5, xend = 7, y = 4, yend = 5, colour = "black")

La sortie générée pour l'ajout de texte est donnée ci-dessous -

La répétition d'un texte particulier avec les coordonnées mentionnées génère la sortie suivante. Le texte est généré avec des coordonnées x de 4 à 6 et des coordonnées y de 5 à 7 -

La segmentation et la mise en évidence de la sortie de zone particulière est donnée ci-dessous -

Ensemble de données PlantGrowth

Concentrons-nous maintenant sur le travail avec un autre jeu de données appelé «Plantgrowth» et l'étape nécessaire est donnée ci-dessous.

Appelez la bibliothèque et découvrez les attributs de «Plantgrowth». Cet ensemble de données comprend les résultats d'une expérience pour comparer les rendements (mesurés par le poids séché des plantes) obtenus sous un contrôle et deux conditions de traitement différentes.

> PlantGrowth
  weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
7 5.17 ctrl
8 4.53 ctrl
9 5.33 ctrl
10 5.14 ctrl
11 4.81 trt1
12 4.17 trt1
13 4.41 trt1
14 3.59 trt1
15 5.87 trt1
16 3.83 trt1
17 6.03 trt1

Ajout d'attributs avec des axes

Essayez de tracer un tracé simple avec les axes x et y requis du graphique comme indiqué ci-dessous -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

La sortie générée est donnée ci-dessous -

Enfin, nous pouvons faire glisser les axes x et y selon nos besoins avec la fonction de base comme mentionné ci-dessous -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

Fondamentalement, nous pouvons utiliser de nombreuses propriétés avec des mappages esthétiques pour travailler avec des axes en utilisant ggplot2.

Les haches et les légendes sont collectivement appelées comme guides. Ils nous permettent de lire les observations du graphique et de les cartographier par rapport aux valeurs d'origine. Les clés de légende et les étiquettes de graduation sont toutes deux déterminées par les sauts d'échelle. Les légendes et les axes sont produits automatiquement en fonction des échelles et géomètres respectifs nécessaires au tracé.

Les étapes suivantes seront implémentées pour comprendre le fonctionnement des légendes dans ggplot2 -

Inclusion du package et de l'ensemble de données dans l'espace de travail

Créons le même tracé pour nous concentrer sur la légende du graphe généré avec ggplot2 -

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(iris)
>
> # Plot
> p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
> p

Si vous observez l'intrigue, les légendes sont créées dans les coins les plus à gauche, comme indiqué ci-dessous -

Ici, la légende comprend divers types d'espèces de l'ensemble de données donné.

Modification des attributs des légendes

Nous pouvons supprimer la légende à l'aide de la propriété "legend.position" et nous obtenons la sortie appropriée -

> # Remove Legend
> p + theme(legend.position="none")

On peut aussi masquer le titre de la légende avec la propriété "element_blank ()" comme donnée ci-dessous -

> # Hide the legend title
> p + theme(legend.title=element_blank())

Nous pouvons également utiliser la position de la légende en cas de besoin. Cette propriété est utilisée pour générer la représentation précise du tracé.

> #Change the legend position
> p + theme(legend.position="top")
>
> p + theme(legend.position="bottom")

Top representation

Bottom representation

Modification du style de police des légendes

Nous pouvons changer le style de police et le type de police du titre et d'autres attributs de la légende comme mentionné ci-dessous -

> #Change the legend title and text font styles
> # legend title
> p + theme(legend.title = element_text(colour = "blue", size = 10, + face = "bold"))
> # legend labels
> p + theme(legend.text = element_text(colour = "red", size = 8, + face = "bold"))

La sortie générée est donnée ci-dessous -

Les prochains chapitres se concentreront sur différents types de tracés avec diverses propriétés d'arrière-plan telles que la couleur, les thèmes et l'importance de chacun d'eux du point de vue de la science des données.

Les nuages ​​de points sont similaires aux graphiques linéaires qui sont généralement utilisés pour le traçage. Les nuages ​​de points montrent à quel point une variable est liée à une autre. La relation entre les variables est appelée corrélation qui est généralement utilisée dans les méthodes statistiques. Nous utiliserons le même jeu de données appelé «Iris» qui comprend de nombreuses variations entre chaque variable. Il s'agit d'un célèbre jeu de données qui donne des mesures en centimètres des variables longueur et largeur des sépales avec longueur et largeur des pétales pour 50 fleurs de chacune des 3 espèces d'iris. Les espèces sont appelées Iris setosa, versicolor et virginica.

Création d'un nuage de points de base

Les étapes suivantes sont impliquées pour créer des nuages ​​de points avec le package «ggplot2» -

Pour créer un nuage de points de base, la commande suivante est exécutée -

> # Basic Scatter Plot
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point()

Ajouter des attributs

Nous pouvons changer la forme des points avec une propriété appelée shape dans la fonction geom_point ().

> # Change the shape of points
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point(shape=1)

Nous pouvons ajouter de la couleur aux points qui sont ajoutés dans les nuages ​​de points requis.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1)

Dans cet exemple, nous avons créé des couleurs selon les espèces mentionnées dans les légendes. Les trois espèces se distinguent de manière unique dans la parcelle mentionnée.

Nous allons maintenant nous concentrer sur l'établissement de relations entre les variables.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

geom_smooth La fonction facilite le modèle de chevauchement et crée le modèle des variables requises.

La méthode attributaire «lm» mentionne la droite de régression qui doit être développée.

> # Add a regression line
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

Nous pouvons également ajouter une ligne de régression sans région de confiance ombrée avec la syntaxe mentionnée ci-dessous -

># Add a regression line but no shaded confidence region
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm, se=FALSE)

Les régions ombrées représentent des choses autres que les régions de confiance.

Tracés de gigue

Les graphiques de gigue incluent des effets spéciaux avec lesquels des graphiques dispersés peuvent être représentés. La gigue n'est rien d'autre qu'une valeur aléatoire attribuée aux points pour les séparer comme mentionné ci-dessous -

> ggplot(mpg, aes(cyl, hwy)) +
+    geom_point() +
+    geom_jitter(aes(colour = class))

Les graphiques à barres représentent les données catégorielles de manière rectangulaire. Les barres peuvent être tracées verticalement et horizontalement. Les hauteurs ou longueurs sont proportionnelles aux valeurs représentées dans les graphiques. Les axes x et y des graphiques à barres spécifient la catégorie qui est incluse dans un jeu de données spécifique.

L'histogramme est un graphique à barres qui représente les données brutes avec une image claire de la distribution de l'ensemble de données mentionné.

Dans ce chapitre, nous nous concentrerons sur la création de graphiques à barres et d'histogrammes à l'aide de ggplot2.

Comprendre l'ensemble de données MPG

Comprenons l'ensemble de données qui sera utilisé. L'ensemble de données MPG contient un sous-ensemble des données d'économie de carburant que l'EPA met à disposition dans le lien ci-dessous -

http://fueleconomy.gov

Il se compose de modèles qui ont eu une nouvelle version chaque année entre 1999 et 2008. Cela a été utilisé comme indicateur de la popularité de la voiture.

La commande suivante est exécutée pour comprendre la liste des attributs nécessaires pour l'ensemble de données.

> library(ggplot2)

Le package joint est ggplot2.

L'objet suivant est masqué _par_ .GlobalEnv -

mpg

Messages d'avertissement

  • le paquet arules a été construit sous la version R 3.5.1
  • le package tuneR a été construit sous la version R 3.5.3
  • le paquet ggplot2 a été construit sous la version R 3.5.3

Création d'un tracé de comptage de barres

Le tracé du nombre de barres peut être créé avec le tracé mentionné ci-dessous -

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+    geom_bar(stat="count")
> p

geom_bar () est la fonction utilisée pour créer des graphiques à barres. Il prend l'attribut de valeur statistique appelé count.

Histogramme

Le tracé de comptage d'histogramme peut être créé avec le tracé mentionné ci-dessous -

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

geom_histogram () inclut tous les attributs nécessaires pour créer un histogramme. Ici, il prend l'attribut de hwy avec le nombre respectif. La couleur est prise selon les exigences.

Graphique à barres empilées

Les graphiques généraux des graphiques à barres et de l'histogramme peuvent être créés comme ci-dessous -

> p <- ggplot(mpg, aes(class))
> p + geom_bar()
> p + geom_bar()

Ce graphique comprend toutes les catégories définies dans les graphiques à barres avec la classe respective. Ce tracé est appelé graphique empilé.

Un diagramme à secteurs est considéré comme un graphique statistique circulaire, qui est divisé en tranches pour illustrer la proportion numérique. Dans le diagramme à secteurs mentionné, la longueur de l'arc de chaque tranche est proportionnelle à la quantité qu'elle représente. La longueur de l'arc représente l'angle du graphique à secteurs. Les degrés totaux du graphique à secteurs sont de 360 ​​degrés. Le graphique en demi-cercle ou semi-circulaire comprend 180 degrés.

Création de graphiques à secteurs

Chargez le package dans l'espace de travail mentionné comme indiqué ci-dessous -

> # Load modules
> library(ggplot2)
>
> # Source: Frequency table
> df <- as.data.frame(table(mpg$class))
> colnames(df) <- c("class", "freq")

L'exemple de graphique peut être créé à l'aide de la commande suivante -

> pie <- ggplot(df, aes(x = "", y=freq, fill = factor(class))) +
+ geom_bar(width = 1, stat = "identity") +
+ theme(axis.line = element_blank(),
+    plot.title = element_text(hjust=0.5)) +
+    labs(fill="class",
+       x=NULL,
+       y=NULL, 
+       title="Pie Chart of class",
+       caption="Source: mpg")
> pie

Si vous observez la sortie, le diagramme n'est pas créé de manière circulaire comme indiqué ci-dessous -

Créer des coordonnées

Exécutons la commande suivante pour créer le graphique à secteurs requis comme suit -

> pie + coord_polar(theta = "y", start=0)

Dans ce chapitre, nous discuterons des tracés marginaux.

Comprendre les tracés marginaux

Les graphiques marginaux sont utilisés pour évaluer la relation entre deux variables et examiner leurs distributions. Lorsque nous parlons de créer des tracés marginaux, ce ne sont que des nuages ​​de points qui ont des histogrammes, des boîtes à moustaches ou des diagrammes à points dans les marges des axes x et y respectifs.

Les étapes suivantes seront utilisées pour créer un tracé marginal avec R en utilisant le package «ggExtra». Ce package est conçu pour améliorer les fonctionnalités du package «ggplot2» et comprend diverses fonctions pour créer des parcelles marginales réussies.

Étape 1

Installez le package «ggExtra» en utilisant la commande suivante pour une exécution réussie (si le package n'est pas installé sur votre système).

> install.packages("ggExtra")

Étape 2

Incluez les bibliothèques requises dans l'espace de travail pour créer des tracés marginaux.

> library(ggplot2)
> library(ggExtra)

Étape 3

Lire le jeu de données requis «mpg» que nous avons utilisé dans les chapitres précédents.

> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer   model  displ   year   cyl   trans      drv   cty   hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi         a4     1.8     1999   4     auto(l5)   f     18    29   p   compa~
2 audi         a4     1.8     1999   4     manual(m5) f     21    29   p   compa~
3 audi         a4     2       2008   4     manual(m6) f     20    31   p   compa~
4 audi         a4     2       2008   4     auto(av)   f     21    30   p   compa~
5 audi         a4     2.8     1999   6     auto(l5)   f     16    26   p   compa~
6 audi         a4     2.8     1999   6     manual(m5) f     18    26   p   compa~
>

Étape 4

Créons maintenant un graphique simple en utilisant «ggplot2» qui nous aidera à comprendre le concept de parcelles marginales.

> #Plot
> g <- ggplot(mpg, aes(cty, hwy)) +
+    geom_count() +
+    geom_smooth(method="lm", se=F)
> g

Relation entre les variables

Créons maintenant les parcelles marginales en utilisant la fonction ggMarginal qui aide à générer une relation entre deux attributs «hwy» et «cty».

> ggMarginal(g, type = "histogram", fill="transparent")
> ggMarginal(g, type = "boxplot", fill="transparent")

La sortie des tracés marginaux d'histogramme est mentionnée ci-dessous -

La sortie pour les graphiques marginaux en boîte est mentionnée ci-dessous -

Les graphiques à bulles ne sont rien d'autre que des graphiques à bulles qui sont essentiellement un nuage de points avec une troisième variable numérique utilisée pour la taille du cercle. Dans ce chapitre, nous nous concentrerons sur la création de tracés de comptage de barres et d'histogrammes qui sont considérés comme des répliques de tracés à bulles.

Les étapes suivantes sont utilisées pour créer des graphiques à bulles et compter les graphiques avec le package mentionné -

Comprendre l'ensemble de données

Chargez le package respectif et le jeu de données requis pour créer les graphiques à bulles et les graphiques de comptage.

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer  model  displ  year  cyl  trans      drv   cty  hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4     1.8    1999  4    auto(l5)   f     18   29   p   compa~
2 audi        a4     1.8    1999  4    manual(m5) f     21   29   p   compa~
3 audi        a4     2      2008  4    manual(m6) f     20   31   p   compa~
4 audi        a4     2      2008  4    auto(av)   f     21   30   p   compa~
5 audi        a4     2.8    1999  6    auto(l5)   f     16   26   p   compa~
6 audi        a4     2.8    1999  6    manual(m5) f     18   26   p   compa~

Le graphique du nombre de barres peut être créé à l'aide de la commande suivante -

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+ geom_bar(stat="count")
> p

Analyse avec histogrammes

Le tracé de comptage de l'histogramme peut être créé à l'aide de la commande suivante -

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

Graphiques à bulles

Créons maintenant le diagramme à bulles le plus élémentaire avec les attributs requis pour augmenter la dimension des points mentionnés dans le diagramme dispersé.

ggplot(mpg, aes(x=cty, y=hwy, size = pop)) +geom_point(alpha=0.7)

Le graphique décrit la nature des fabricants qui est inclus dans le format de légende. Les valeurs représentées incluent diverses dimensions de l'attribut «hwy».

Dans les chapitres précédents, nous avons examiné différents types de graphiques qui peuvent être créés à l'aide du package «ggplot2». Nous allons maintenant nous concentrer sur la variation des mêmes graphiques à barres divergents, des graphiques à sucettes et bien d'autres. Pour commencer, nous allons commencer par créer des histogrammes divergents et les étapes à suivre sont mentionnées ci-dessous -

Comprendre l'ensemble de données

Chargez le package requis et créez une nouvelle colonne appelée «nom de voiture» dans l'ensemble de données mpg.

#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name` <- rownames(mtcars)
> # compute normalized mpg
> mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)
> # above / below avg flag
> mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
> # sort
> mtcars <- mtcars[order(mtcars$mpg_z), ]

Le calcul ci-dessus implique la création d'une nouvelle colonne pour les noms de voitures, le calcul de l'ensemble de données normalisé à l'aide de la fonction round. Nous pouvons également utiliser l'indicateur au-dessus et au-dessous de avg pour obtenir les valeurs de la fonctionnalité «type». Plus tard, nous trions les valeurs pour créer l'ensemble de données requis.

La sortie reçue est la suivante -

Convertissez les valeurs en facteur pour conserver l'ordre de tri dans un tracé particulier, comme indiqué ci-dessous -

> # convert to factor to retain sorted order in plot.
> mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)

Le rendement obtenu est mentionné ci-dessous -

Graphique à barres divergentes

Créez maintenant un diagramme à barres divergentes avec les attributs mentionnés qui sont considérés comme des coordonnées requises.

> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+    labels = c("Above Average", "Below Average"),
+    values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+    title= "Diverging Bars") +
+ coord_flip()

Note - Un graphique à barres divergentes marque pour certains membres de dimension pointant vers le haut ou vers le bas par rapport aux valeurs mentionnées.

La sortie du graphique à barres divergentes est mentionnée ci-dessous où nous utilisons la fonction geom_bar pour créer un graphique à barres -

Tableau des sucettes divergentes

Créez un diagramme de sucettes divergeant avec les mêmes attributs et coordonnées avec seulement le changement de fonction à utiliser, c'est-à-dire geom_segment () qui aide à créer les graphiques de sucettes.

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+    x = `car name`,
+    yend = mpg_z,
+    xend = `car name`),
+       color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+    subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

Tracé de points divergents

Créez un diagramme à points divergents de la même manière où les points représentent les points dans des tracés dispersés dans une plus grande dimension.

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+  geom_point(stat='identity', aes(col=mpg_type), size=6) +
+  scale_color_manual(name="Mileage",
+     labels = c("Above Average", "Below Average"),
+     values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+     subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

Ici, les légendes représentent les valeurs «Au-dessus de la moyenne» et «En dessous de la moyenne» avec des couleurs distinctes de vert et de rouge. Le dot plot transmet des informations statiques. Les principes sont les mêmes que ceux du graphique à barres divergentes, sauf que seuls les points sont utilisés.

Dans ce chapitre, nous nous concentrerons sur l'utilisation d'un thème personnalisé qui est utilisé pour changer l'aspect et la convivialité de l'espace de travail. Nous utiliserons le package «ggthemes» pour comprendre le concept de gestion des thèmes dans l'espace de travail de R.

Implémentons les étapes suivantes pour utiliser le thème requis dans l'ensemble de données mentionné.

GGTHÈMES

Installez le package «ggthemes» avec le package requis dans l'espace de travail R.

> install.packages("ggthemes")
> Library(ggthemes)

Mettre en œuvre un nouveau thème pour générer des légendes de fabricants avec l'année de production et le déplacement.

> library(ggthemes)
> ggplot(mpg, aes(year, displ, color=factor(manufacturer)))+
+ geom_point()+ggtitle("This plot looks a lot different from the default")+
+ theme_economist()+scale_colour_economist()

On peut observer que la taille par défaut du texte de graduation, des légendes et autres éléments est un peu petite avec la gestion des thèmes précédente. Il est incroyablement facile de changer la taille de tous les éléments de texte à la fois. Cela peut être fait en créant un thème personnalisé que nous pouvons observer dans l'étape ci-dessous que les tailles de tous les éléments sont relatives (rel ()) à base_size.

> theme_set(theme_gray(base_size = 30))
> ggplot(mpg, aes(x=year, y=class))+geom_point(color="red")

Les tracés à panneaux multiples signifient la création de tracés de plusieurs graphiques ensemble dans un seul tracé. Nous utiliserons la fonction par () pour mettre plusieurs graphiques dans un seul tracé en passant les paramètres graphiques mfrow et mfcol.

Ici, nous utiliserons le jeu de données «AirQuality» pour implémenter des graphiques à panneaux multiples. Comprenons d'abord le jeu de données pour jeter un coup d'œil sur la création de graphiques multi-panneaux. Cet ensemble de données comprend Contient les réponses d'un dispositif multicapteur de gaz déployé sur le terrain dans une ville italienne. Les moyennes des réponses horaires sont enregistrées avec les références de concentrations de gaz provenant d'un analyseur certifié.

Aperçu de la fonction par ()

Comprenez la fonction par () pour créer une dimension des tracés multi-panneaux requis.

> par(mfrow=c(1,2))
> # set the plotting area into a 1*2 array

Cela crée un tracé vide avec une dimension de 1 * 2.

Créez maintenant le diagramme à barres et le diagramme à secteurs du jeu de données mentionné à l'aide de la commande suivante. Ce même phénomène peut être réalisé avec le paramètre graphique mfcol.

Création de tracés multi-panneaux

La seule différence entre les deux est que mfrow remplit la région de sous-tracé par ligne tandis que mfcol la remplit par colonne.

> Temperature <- airquality$Temp
> Ozone <- airquality$Ozone
> par(mfrow=c(2,2))
> hist(Temperature)
> boxplot(Temperature, horizontal=TRUE)
> hist(Ozone)
> boxplot(Ozone, horizontal=TRUE)

Les boîtes à moustaches et les barplots sont créés dans une seule fenêtre, créant essentiellement des graphiques à panneaux multiples.

Le même tracé avec un changement de dimensions dans la fonction par ressemblerait à ceci -

par(mfcol = c(2, 2))

Dans ce chapitre, nous nous concentrerons sur la création de plusieurs tracés qui peuvent être utilisés ultérieurement pour créer des tracés en 3 dimensions. La liste des parcelles qui seront couvertes comprend -

  • Diagramme de densité
  • Boîte à moustaches
  • Tracé de points
  • Parcelle de violon

Nous utiliserons le jeu de données «mpg» tel qu'utilisé dans les chapitres précédents. Cet ensemble de données fournit des données sur la consommation de carburant de 1999 et 2008 pour 38 modèles de voitures populaires. L'ensemble de données est livré avec le package ggplot2. Il est important de suivre l'étape mentionnée ci-dessous pour créer différents types de parcelles.

> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer  model   displ   year   cyl   trans       drv   cty   hwy  fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4      1.8     1999   4     auto(l5)    f     18    29   p    compa~
2 audi        a4      1.8     1999   4     manual(m5)  f     21    29   p    compa~
3 audi        a4      2       2008   4     manual(m6)  f     20    31   p    compa~
4 audi        a4      2       2008   4     auto(av)    f     21    30   p    compa~
5 audi        a4      2.8     1999   6     auto(l5)    f     16    26   p    compa~
6 audi        a4      2.8     1999   6     manual(m5)  f     18    26   p    compa~

Diagramme de densité

Un graphique de densité est une représentation graphique de la distribution de toute variable numérique dans l'ensemble de données mentionné. Il utilise une estimation de densité de noyau pour montrer la fonction de densité de probabilité de la variable.

Le package «ggplot2» comprend une fonction appelée geom_density () pour créer un graphique de densité.

Nous allons exécuter la commande suivante pour créer un graphique de densité -

> p −- ggplot(mpg, aes(cty)) +
+  geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p

Nous pouvons observer différentes densités à partir du graphique créé ci-dessous -

Nous pouvons créer le tracé en renommant les axes x et y, ce qui maintient une meilleure clarté avec l'inclusion du titre et des légendes avec différentes combinaisons de couleurs.

> p + labs(title="Density plot",
+    subtitle="City Mileage Grouped by Number of cylinders",
+    caption="Source: mpg",
+    x="City Mileage",
+    fill="# Cylinders")

Boîte à moustaches

La boîte à moustaches, également appelée boîte à moustaches et moustache, représente le résumé à cinq chiffres des données. Les cinq résumés de nombres incluent des valeurs telles que minimum, premier quartile, médiane, troisième quartile et maximum. La ligne verticale qui traverse la partie médiane de la boîte à moustaches est considérée comme «médiane».

Nous pouvons créer un box plot en utilisant la commande suivante -

> p <- ggplot(mpg, aes(class, cty)) +
+  geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+    subtitle="Mileage by Class",
+    caption="MPG Dataset",
+    x="Class",
+    y="Mileage")
>p

Ici, nous créons un box plot en ce qui concerne les attributs de classe et cty.

Tracé de points

Les tracés de points sont similaires aux tracés dispersés avec seulement une différence de dimension. Dans cette section, nous ajouterons un diagramme à points à la boîte à moustaches existante pour avoir une meilleure image et une meilleure clarté.

Le box plot peut être créé à l'aide de la commande suivante -

> p <- ggplot(mpg, aes(manufacturer, cty)) +
+    geom_boxplot() +
+    theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p

Le dot plot est créé comme indiqué ci-dessous -

> p + geom_dotplot(binaxis='y',
+    stackdir='center',
+    dotsize = .5
+    )

Parcelle de violon

L'intrigue de violon est également créée de manière similaire avec seulement un changement de structure des violons au lieu de la boîte. La sortie est clairement mentionnée ci-dessous -

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()

Il existe des moyens de modifier l'apparence entière de votre tracé avec une fonction, comme indiqué ci-dessous. Mais si vous voulez simplement changer la couleur d'arrière-plan du panneau, vous pouvez utiliser ce qui suit -

Contexte du Panel de mise en œuvre

Nous pouvons changer la couleur d'arrière-plan en utilisant la commande suivante qui aide à changer le panneau (panel.background) -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+ theme(panel.background = element_rect(fill = 'grey75'))

Le changement de couleur est clairement représenté sur l'image ci-dessous -

Implémentation de Panel.grid.major

Nous pouvons changer les lignes de la grille en utilisant la propriété «panel.grid.major» comme mentionné dans la commande ci-dessous -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+    theme(panel.background = element_rect(fill = 'grey75'),
+    panel.grid.major = element_line(colour = "orange", size=2),
+    panel.grid.minor = element_line(colour = "blue"))

Nous pouvons même changer l'arrière-plan du tracé, en particulier en excluant le panneau en utilisant la propriété "plot.background" comme mentionné ci-dessous -

ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+   theme(plot.background = element_rect(fill = 'pink'))

Une série chronologique est un tracé graphique qui représente la série de points de données dans un ordre temporel spécifique. Une série chronologique est une séquence prise avec une séquence à des points temporels successifs égaux. Les séries chronologiques peuvent être considérées comme des données en temps discret. L'ensemble de données que nous utiliserons dans ce chapitre est un ensemble de données «économiques» qui comprend tous les détails des séries chronologiques économiques américaines.

Le dataframe comprend les attributs suivants qui sont mentionnés ci-dessous -

Date Mois de collecte de données
Psavert Taux d'épargne personnelle
Pce Dépenses de consommation personnelle
Chômage Nombre de chômeurs en milliers
Sans empreinte Durée médiane du chômage
Pop Population totale en milliers

Chargez les packages requis et définissez le thème par défaut pour créer une série chronologique.

> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date           pce            pop          psavert       uempmed       unemploy
<date>         <dbl>         <dbl>         <dbl>         <dbl>         <dbl>
1 1967-07-01    507.          198712        12.6          4.5           2944
2 1967-08-01    510.          198911        12.6          4.7           2945
3 1967-09-01    516.          199113        11.9          4.6           2958
4 1967-10-01    512.          199311        12.9          4.9           3143
5 1967-11-01    517.          199498        12.8          4.7           3066
6 1967-12-01    525.          199657        11.8          4.8           3018

Créez un tracé linéaire de base qui crée une structure de série chronologique.

> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)

Nous pouvons tracer le sous-ensemble de données en utilisant la commande suivante -

> # Plot a subset of the data
> ss <- subset(economics, date > as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)

Création de séries chronologiques

Ici, nous allons tracer les variables psavert et uempmed par les dates. Ici, nous devons remodeler les données à l'aide du package tidyr. Ceci peut être réalisé en réduisant les valeurs psavert et uempmed dans la même colonne (nouvelle colonne). Fonction R: rassembler () [tidyr]. L'étape suivante consiste à créer une variable de regroupement avec des niveaux = psavert et uempmed.

> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df <- economics %>%
+    select(date, psavert, uempmed) %>%
+    gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date          variable     value
<date> <chr>   <dbl>
1 1967-07-01   psavert       12.6
2 1967-08-01   psavert       12.6
3 1967-09-01   psavert       11.9

Créez un tracé sur plusieurs lignes à l'aide de la commande suivante pour examiner la relation entre «psavert» et «sans empreinte» -

> ggplot(df, aes(x = date, y = value)) +
+    geom_line(aes(color = variable), size = 1) +
+    scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+    theme_minimal()