J'essaie de créer une figure de ligne avec quatre styles de trait différents. J'ai des valeurs moyennes pour l'axe y et l'erreur pour chaque valeur y. Parce que je veux que tout soit de la même couleur (noir), je veux les différencier par des styles de lignes différents, mais avec mon code ci-dessous, j'obtiens une belle ligne continue pour les quatre styles. Qu'est-ce que je fais mal?Matplotlib: obtention d'un trait fin en plus du style de ligne spécifié
import matplotlib.pyplot as plt
import numpy as np
xl = [1, 2, 3, 4, 5, 6]
a_mean = [17, 15, 20, 22, 18, 16]
a_se = [1, 2, 1, 3, 1.5, 2]
b_mean = [5, 6, 2, 5, 1, 9]
b_se = [1, 2, 0.3, 1, 2, 1]
c_mean = [2, 4, 6, 8, 10, 12]
c_se = [1, 2, 2, 1, 2, 1.5]
d_mean = [12, 10, 8, 6, 4, 2]
d_se = [3, 2, 1, 2, 1, 1]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlabel('X', fontsize = 16)
ax.set_ylabel('Y', fontsize = 16)
plt.axis([0, 7, 0, 30])
x = np.linspace(0, 1)
y = np.linspace(0, 30)
ax.plot(xl, a_mean, linestyle = '-', color = 'k', linewidth = 3, marker = '', label = 'A')
ax.errorbar(xl, a_mean, yerr = a_se, color = 'k', linewidth = 1)
ax.plot(xl, b_mean, linestyle = '--', color = 'k', linewidth = 3, marker = '', label = 'B')
ax.errorbar(xl, b_mean, yerr = b_se, color = 'k', linewidth = 1)
ax.plot(xl, c_mean, linestyle = ':', color = 'k', linewidth = 3, marker = '', label = 'C')
ax.errorbar(xl, c_mean, yerr = c_se, color = 'k', linewidth = 1)
ax.plot(xl, d_mean, linestyle = '-.', color = 'k', linewidth = 3, marker = '', label = 'D')
ax.errorbar(xl, d_mean, yerr = d_se, color = 'k', linewidth = 1)
ax.legend(loc = 0, frameon = False, prop = {'size': 12})
plt.show()
, je veux aussi faire les barres d'erreur d'avoir la même largeur de ligne pour les lignes, mais quand je le fais plus épais, les lignes se ressemblent tous.
Merci pour votre réponse rapide! Il a corrigé le problème de la ligne fine et maintenant je peux aussi rendre les barres d'erreur plus épaisses. – owl