2016-12-14 156 views
1

這裏是我的代碼:旁邊垂直線添加文本matplotlib

import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
import datetime 
import numpy as np 
fig, ax = plt.subplots(1,1) 
sample_dates = np.array([datetime.datetime(2000,1,1), datetime.datetime(2001,1,1)]) 
sample_dates = mdates.date2num(sample_dates) 
plt.vlines(x=sample_dates, ymin=0, ymax=10, color = 'r') 
ax.xaxis.set_major_locator(mdates.YearLocator()) 
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y')) 
plt.show() 

它繪製於X軸的特定日期兩條紅線。現在我想爲每一行添加文本。文本應該與該行平行。我從哪說起呢?

+1

與往常一樣,通過閱讀說明書,特別是[第開始文本](http://matplotlib.org/users/text_intro.html)和其中的命令。 – ImportanceOfBeingErnest

回答

1

您可以使用Matplotlib text函數在圖上繪製文本。它有很多可以設置的參數。請參閱文檔和示例here

下面是平行一些文本行的一個示例:

import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
import datetime 
import numpy as np 
from matplotlib.pyplot import text 

fig, ax = plt.subplots(1,1) 
sample_dates = np.array([datetime.datetime(2000,1,1), datetime.datetime(2001,1,1)]) 
sample_dates = mdates.date2num(sample_dates) 
plt.vlines(x=sample_dates, ymin=0, ymax=10, color = 'r') 
ax.xaxis.set_major_locator(mdates.YearLocator()) 
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y')) 

for i, x in enumerate(sample_dates): 
    text(x, 5, "entry %d" % i, rotation=90, verticalalignment='center') 

plt.show() 

應該是這樣的:

New plot result.