2013-11-22 4 views
2

Я ищу возможность создать диаграмму, которая объединяет 1 бар (за индекс) и 2 бара.python + matplotlib: как сделать диаграмму, объединяющую 1 бар и 2 бара?

что-то вроде этого:

enter image description here

я мог фальсифицировать это сделать схему на 2 бара, поставив 0 в первую группу баров, а затем рисовать бар вручную ... но есть более элегантный способ сделать это?

Благодаря

+2

То, что вы описали это правильный способ сделать это. – tacaswell

ответ

2

Вы можете адаптировать по мере необходимости, но ключевым здесь является то, что plt.bar принимает третий параметр ширины бара. Мы можем использовать это и масштабировать координату x для создания эффекта, который вы ищете.

import numpy as np 
import pylab as plt 

bar_width = 0.3 

plt.bar([0,],[3,],2*bar_width,color='k',alpha=.7) 

X = np.array([1,2,3]) 
Y0 = [2,5,7] 
Y1 = [5,3,1] 

plt.bar(X,Y0,bar_width,color='b',alpha=.7) 
plt.bar(X+bar_width,Y1,bar_width,color='r',alpha=.7) 

plt.show() 

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^