我有一個barplot的頂部,我想繪製兩個座標之間的線段(即在同一圖中)。我嘗試通過添加另一個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--")
我有一個barplot的頂部,我想繪製兩個座標之間的線段(即在同一圖中)。我嘗試通過添加另一個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--")
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')
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')
謝謝MaxU。請您在X軸上還有日期時間的情況下如何操作?你需要將這些翻譯成數字嗎? – MaVe
@MaVe,當然,只要將你的DF/Series的樣本發佈到你的問題上,我會舉一個例子 – MaxU
,那會很棒。下面是條形圖中數據的一個示例(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
你能提供一個可重複的例子嗎? –