2016-10-05 1 views
3

Le code suivant imprime un graphique à barres avec quatre couleurs:Comment coder des graphiques à barres avec des motifs avec des couleurs en Python?

import matplotlib.pyplot as plt 

barlist=plt.bar([1,2,3,4], [1,2,3,4]) 
barlist[0].set_color('r') 
barlist[1].set_color('g') 
barlist[2].set_color('y') 
plt.show() 

enter image description here

Le problème est que lors de l'impression en noir et blanc, ils se ressemblent beaucoup. D'où mon intention serait de produire un graphique un peu comme ceci:

enter image description here

Il n'a pas ont à regarder comme ci-dessus (pardonnez l'illustration bâclée), mais l'idée est que chaque aspect de la barre différent lorsqu'il est vu en niveaux de gris.

Y a-t-il un moyen de l'implémenter en Python?

Répondre

2

Vous pouvez définir différents modèles à l'intérieur des barres édition des paramètres de trappe:

import matplotlib.pyplot as plt 

barlist = plt.bar([1,2,3,4], [1,2,3,4], color=['r','b','y','g']) 

barlist[0].set_hatch('//') 
barlist[1].set_hatch('.') 
barlist[2].set_hatch('*') 
barlist[3].set_hatch('o') 
plt.show() 

Sample bars figure

+0

Juste un problème, @Jalo: il fonctionne avec le bleu par défaut, mais pas avec les autres couleurs comme ci-dessus . Pourriez-vous fournir une alternative? –

+0

J'ai modifié la publication pour conserver les couleurs, simplement en les ajoutant aux attributs plt.bar. Il existe plusieurs solutions, et la mienne n'est probablement pas la plus «pythoniste», mais elle fonctionne correctement. Recherchez des exemples de matplotlib dans leur site Web, peut-être vous pouvez trouver plus d'informations et obtenir de meilleurs chiffres – Jalo