2016-05-15 3 views
1

Я хотел бы иметь двухэтажный участок с matplotlib. Это мой код:Double bar plot matplotlib

width = 0.55 
ax2.set_xlim(0,len(partiteIndici)+width) 
plt.ylim([0,100]) 
rects1 = ax2.bar(partiteIndici, distanze, width,align='center', color='blue', label='4-3-3 Modello') 
rects2 = ax2.bar(partiteIndici, distanze2, width,align='center', color='red', label='Squadra X') 
plt.xticks(index + width, partite) 
plt.legend() 
plt.tight_layout() 
plt.show() 

Но это то, что у меня есть: enter image description here

Я хотел бы иметь синие полосы рядом с красными полосами, не перекрываются. Как я могу заставить это работать?

И почему у меня есть маркеры на стойке х, сдвинутой относительно баров?

ответ

0

Я вижу две ошибки в вашем коде: во-первых, вы накладываете свои штриховые накладки, потому что вы закладываете их с одинаковыми значениями x; вам нужно вручную сменить один сюжет, чтобы он работал по вашему пути, согласно this example. Предполагая, что partiteIndici является массивом, изменить rects2 строку

rects2 = ax2.bar(partiteIndici + width, distanze2, width,align='center', color='red', label='Squadra X') 

Это позволит получить один из ваших участков сдвинуты. В соответствии с тиками и ярлыками вы должны поместить их в те же самые x балла; Поменять index в xticks линия до partiteIndici:

plt.xticks(partiteIndici + width, partite)