2015-09-22 3 views
1

У меня возникли проблемы с правильной настройкой данных. У меня есть 3 графика для каждого значения x, но в настоящий момент они все замышляют над собой. Кажется, я не могу найти способ заставить их двигаться по оси, чтобы они совпадали друг с другом.Несколько баров на одном участке (Python)

enter image description here

Вот как это вышло, в то время как я хотел бы, чтобы выйти так:

enter image description here

Не беспокойтесь о цвете я просто не добавил, что еще. Я посмотрел примеры других народов, но, похоже, это не помогает.

Он код используется для создания этого графика:

In[15]: for i in df_Entry.columns.levels[0]: 
    plt.figure() 
    barwidth = 0.2 
    df_Entry[i]['mean'].plot(kind='bar', yerr=df_Entry[i]['std']) 
    df_Apex[i]['mean'].plot(kind='bar', yerr=df_Apex[i]['std']) 
    df_Exit[i]['mean'].plot(kind='bar', yerr=df_Exit[i]['std']) 

Спасибо за любую помощь.

ответ

2

Попробуйте это:

import numpy as np 
b1 = np.array([1,2,3]) 
b2 = np.array([3,2,1]) 
x = np.array([1.0, 2.0, 3.0]) 
plt.bar(left=x-0.3, width=0.3, height=b1) 
plt.bar(left=x, width=0.3, height=b2, color='g') 

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

Там в решение, что тоже, хотя это не исходит от меня: http://people.duke.edu/~ccc14/pcfb/numpympl/MatplotlibBarPlots.html

Это использует объектно-ориентированный интерфейс pyplot (который путает некоторых людей, но на самом деле очень круто), чтобы изменить метки и пределы оси после факта.

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