Problème étrange ennuyeux et je n'ai pas encore trouvé de solution sur ce site (bien que la question soit apparue)
J'essaie de faire un histogramme où les bacs ont le "style de barre" où les lignes verticales séparent chaque bac, mais peu importe ce que je change le constructeur du type d'histogramme pour obtenir un histogramme rempli par étapes.
Voici mon code. Remarque J'utilise un ordinateur portable jupyter installé via anaconda avec python version 2.7.6
import numpy as np
import matplotlib.pyplot as plt
x = np.random.Rand((100))
bins = np.linspace(0, 2, 40)
plt.title('Relative Amplitude',fontsize=30)
plt.xlabel('Random Histogram')
plt.ylabel('Frequency',fontsize=30)
plt.hist(x, bins, alpha=0.5, histtype='bar')
plt.legend(loc='upper right',fontsize=30)
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)
plt.show()
C'est tout et j'obtiens un diagramme rempli d'étapes sans lignes verticales séparant les barres. Ce qui est ennuyeux, c'est que je n'ai pas eu ce problème il y a quelque temps, quelque chose a clairement changé et je ne sais pas quoi. J'ai également essayé histype = 'barstacked'. Merci de votre aide
En utilisant votre exemple:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.Rand((100))
bins = np.linspace(0, 2, 40)
plt.title('Relative Amplitude',fontsize=30)
plt.xlabel('Random Histogram')
plt.ylabel('Frequency',fontsize=30)
plt.hist(x, bins, alpha=0.5, histtype='bar', ec='black')
plt.legend(loc='upper right',fontsize=30)
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)
plt.show()
Ce qui produit l'image suivante:
La principale différence est l'utilisation de l'argument de mot clé ec
. C'est l'abréviation de "edgecolor". Dans la documentation de plt.hist
il indique qu'en plus de tous les arguments de mots clés répertoriés, plt.hist
prend également des arguments de mots clés pour l'initialiseur Patch
. edgecolor
est l'un de ces arguments de mots clés. C'est pourquoi il n'est pas explicitement répertorié dans la documentation de plt.hist
. Toutes les barres du tracé sont un objet Patch
individuel, vous dites donc que vous voulez que toutes les barres soient dessinées avec un contour noir (ou edgecolor
dans le jargon matplotlib).