Matplotlib vs ggplot2 : lequel devriez-vous utiliser ?



Deux des bibliothèques de visualisation de données les plus populaires dans toute la science des données sont ggplot2 et Matplotlib .

La bibliothèque ggplot2 est utilisée dans le langage de programmation statistique R tandis que Matplotlib est utilisée en Python.

Bien que les deux bibliothèques vous permettent de créer des visualisations de données hautement personnalisées, ggplot2 vous permet généralement de le faire avec moins de lignes de code par rapport à Matplotlib.

Pour illustrer ce point, nous montrerons comment créer les mêmes types de graphiques en utilisant les deux bibliothèques.

Graphiques linéaires : ggplot2 vs Matplotlib

Le code suivant montre comment créer un graphique linéaire à l’aide de ggplot2 :

library(ggplot2)

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(2, 4, 5, 8, 6, 12, 15, 19, 15, 22))

#create line chart
ggplot(df, aes(x=day, y=sales)) +
  geom_line(size=1.2, col='purple') +
  ggtitle('Sales by Day') +
  xlab('Day') +
  ylab('Sales')

Et le code suivant montre comment créer le même graphique linéaire à l’aide de Matplotlib :

import pandas as pd
import matplotlib.pyplot as plt 

#create DataFrame
df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   'sales': [2, 4, 5, 8, 6, 12, 15, 19, 15, 22]})

#create line chart
plt.plot(df.day, df.sales, color='purple')
plt.title('Sales by Day', loc='left')
plt.ylabel('Sales')
plt.xlabel('Day')

Pour cet exemple, le nombre de lignes de code nécessaires pour générer chaque tracé est à peu près le même entre ggplot2 et Matplotlib.

Nuages de points : ggplot2 contre Matplotlib

Le code suivant montre comment créer un nuage de points dans ggplot2 dans lequel les points sont colorés par catégorie :

library(ggplot2)

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 assists=c(1, 2, 2, 4, 5, 7, 8, 10),
                 points=c(4, 6, 10, 8, 12, 15, 22, 28))

#create scatter plot
ggplot(df, aes(x=assists, y=points)) +
  geom_point(aes(col=team), size=3)

Et le code suivant montre comment créer le même nuage de points en utilisant Matplotlib :

import pandas as pd
import matplotlib.pyplot as plt 

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'assists': [1, 2, 2, 4, 5, 7, 8, 10],
                   'points': [4, 6, 10, 8, 12, 15, 22, 28]})

#define colors to use
color_list = [] 
for x in df['team']: 
    if x == 'A': color_list.append('#F8766D') 
    else: color_list.append('#00BFC4') 

#create scatter plot
plt.scatter(df.assists, df.points, c=color_list)
plt.ylabel('points')
plt.xlabel('assists')

Notez que nous avons dû utiliser beaucoup plus de lignes de code dans Matplotlib pour générer le même tracé que ggplot2.

Histogrammes : ggplot2 vs Matplotlib

Le code suivant montre comment créer un histogramme dans ggplot2 :

library(ggplot2)

#create data frame
df <- data.frame(x=c(2, 2, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8,
                     10, 11, 11, 11, 12, 13, 14, 14))

#create scatter plot
ggplot(df, aes(x=x)) +
  geom_histogram(bins=6, fill='red', color='black') +
  ggtitle('My Histogram')

Et le code suivant montre comment créer un histogramme similaire en utilisant Matplotlib :

import pandas as pd
import matplotlib.pyplot as plt 

#create DataFrame
df = pd.DataFrame({'x': [2, 2, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8,
                         10, 11, 11, 11, 12, 13, 14, 14]})

#create histogram
plt.hist(df['x'], bins=6, color='red', ec='black')
plt.title('My Histogram', loc='left') 
plt.xlabel('x') 
plt.ylabel('Count')

Encore une fois la version Matplotlib nécessite plus de lignes de code que ggplot2.

Conclusion

ggplot2 et Matplotlib vous permettent de créer des visualisations de données hautement personnalisables, mais ggplot2 a tendance à utiliser moins de code.

Souvent, la préférence entre ggplot2 et Matplotlib dépend simplement du langage de programmation que vous utilisez pour l’analyse des données.

Les personnes qui utilisent Python ont tendance à utiliser Matplotlib car elles peuvent effectuer leur analyse de données et créer des visualisations de données à l’aide d’un seul langage de programmation.

À l’inverse, les personnes qui utilisent R ont tendance à utiliser ggplot2 car cela leur permet d’effectuer toutes leurs analyses et visualisations de données dans un seul langage de programmation.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *