2017-02-09 6 views
6

Я использую следующий код для построения штрих-диаграммы:Matplotlib: участок несколько столбцов панд кадра данных на гистограмме

import matplotlib.pyplot as pls 
my_df.plot(x='my_timestampe', y='col_A', kind='bar') 
plt.show() 

Участок работает отлично. Однако я хочу улучшить график, имея 3 столбца: «col_A», «col_B» и «col_C» - все на графике. Как и в примере на рисунке ниже:

enter image description here

Я хотел бы col_A отображаться синим цветом выше оси х, col_B в красном ниже оси х, и col_C зеленым цветом выше оси х. Возможно ли это в matplotlib? Как внести изменения в построение всех трех столбцов? Благодаря!

ответ

19

Вы можете построить сразу несколько столбцов, указав список имен столбцов на аргумент ploty.

df.plot(x="X", y=["A", "B", "C"], kind="bar") 

enter image description here

Это создаст график, где бары сидят рядом друг с другом.

Для того, чтобы они перекрывали друг друга, вам нужно будет позвонить по номеру plot несколько раз и предоставить оси для вывода в качестве аргумента ax на участок.

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

y = np.random.rand(10,4) 
y[:,0]= np.arange(10) 
df = pd.DataFrame(y, columns=["X", "A", "B", "C"]) 

ax = df.plot(x="X", y="A", kind="bar") 
df.plot(x="X", y="B", kind="bar", ax=ax, color="C2") 
df.plot(x="X", y="C", kind="bar", ax=ax, color="C3") 

plt.show() 

enter image description here

+0

второй граф отстой, потому что вы не можете видеть синий и зеленый цвет в 3-м столбце. Можно изменить это, чтобы увидеть событие с более низким значением, последнее из которых так велико. – hudi

+0

Второй график имеет смысл, если самые высокие значения являются значениями из первого столбца, построенного для всех баров. Это, похоже, имеет место в желаемом выходе из вопроса. В противном случае я бы не рекомендовал использовать этот вид сюжета, а вместо этого использовал либо сложный сюжет, либо сгруппированные бары из первого решения здесь. Конечно, можно экспериментировать с прозрачностью ('alpha') и посмотреть, дает ли последнее решение привлекательный результат. – ImportanceOfBeingErnest

+0

ah ok thx для объяснения – hudi

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

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