use*_*890 5 python matplotlib vline
这是我的代码:
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()
Run Code Online (Sandbox Code Playgroud)
它在x轴上的某些日期绘制两条红线.现在我想在每一行添加文字.文本应该与行平行.我从哪里开始?
您可以使用Matplotlib text函数在图上绘制文本.它有很多可以设置的参数.请参阅此处的文档和示例.
下面是一些与行平行的文本示例:
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()
Run Code Online (Sandbox Code Playgroud)
应该是这样的: