2016-06-24 2 views
3

У меня есть штрих-код, поверх которого я хотел бы нарисовать отрезок линии между двумя координатами (т. Е. На том же рисунке). Я попытался добавить еще одно заявление plt, но строка не нарисована.Как добавить строку поверх гистограммы?

plt.figure(figsize=(12, 10)) 
ax = freq_series.plot(kind='bar',color=colors) 
plt.plot([coord_x1,coord_y1], [coord_x2, coord_y2], "r--") 
+0

Можете ли вы привести воспроизводимый пример? –

ответ

3

UPDATE:

import datetime 
import matplotlib as mpl 
import matplotlib.pyplot as plt 

mpl.style.use('ggplot') 

d = { 
    datetime.date(2015, 6, 21): 101.0, 
    datetime.date(2015, 6, 22): 81.0, 
    datetime.date(2015, 6, 23): 94.0, 
    datetime.date(2015, 4, 24): 67.5, 
    datetime.date(2015, 6, 26): 99.1 
} 

df = pd.DataFrame({'date': [x for x in d.keys()], 'val':[x for x in d.values()]}) 

%matplotlib 

ax = df.set_index('date').plot.bar(rot=0, figsize=(12, 10)) 

x = [ax.patches[0].get_x(), ax.patches[-1].get_x() + ax.patches[-1].get_width()] 
y = [df.val.max()] * 2 

plt.plot(x, y, 'r--', c='g', linewidth=4) 

#plt.plot([ax.patches[0].get_width(), ax.patches[-1].get_width()], [y,y], 'r--', c='k') 

enter image description here

OLD Ответ:

Вот небольшая демонстрация:

import matplotlib as mpl 
import matplotlib.pyplot as plt 

mpl.style.use('ggplot') 

df = pd.DataFrame(np.random.randint(0, 10, size=(5)), columns=list('a')) 

ax = df.plot.bar(figsize=(12, 10)) 

coord_x1 = 0.5 
coord_y1 = 7.5 

coord_x2 = 4.5 
coord_y2 = 7.5 

plt.plot([coord_x1, coord_x2], [coord_y1, coord_y1], '-o') 

enter image description here

+0

Спасибо, MaxU. Не могли бы вы также показать, как это сделать, когда есть время на оси X, пожалуйста? Вам нужно перевести их каким-то образом на цифры? – MaVe

+0

@MaVe, конечно, просто отправьте образец вашего DF/Series на ваш вопрос, и я приведу пример – MaxU

+0

, который был бы замечательным. Ниже приведен пример данных на гистограмме (даты на оси X и значения по оси Y): {datetime.date (2015, 6, 21): 101.0, datetime.date (2015, 6, 22): 81,0, datetime.date (2015, 6, 23): 94,0, datetime.date (2015, 4, 24): 67,5, datetime.date (2015, 6, 26): 99,1} – MaVe

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