0

我制作了一个 x 轴为datetime(2012-8-1, 2012-10,7....)

我想放一个文本框来标记这个数字

id = ("(A)","(B)","(C)","(D)","(E)","(Average)")

X轴

months = mpl.dates.MonthLocator() # every month
days = mpl.dates.DayLocator(interval=5) # every 10 days
dateFmt=mpl.dates.DateFormatter('%m-%d')    
ax.xaxis.set_major_formatter(dateFmt)
ax.xaxis.set_major_locator(months)
#ax.xaxis.set_minor_locator(days)
ax.xaxis_date()

Y轴

ax.set_ylim(ymin[i],ymax[i])
ax.set_ylabel(ylabels)
ax.axhline(linewidth=0.5,color="k")
ax.yaxis.set_major_locator(tk.MaxNLocator(nbins=3))
ax.yaxis.set_minor_locator(tk.MaxNLocator(nbins=6))
[tickline.set_markersize(3) for tickline in ax.yaxis.get_ticklines(minor=True)]
[tickline.set_markersize(2.5) for tickline in ax.yaxis.get_ticklines(minor=True)]

文本

ax.text(0.25,ymax[i],id[i],fontsize=15)

但我根本看不到标签。

我怎样才能意识到它?

4

2 回答 2

1

您需要以与其他绘图方法相同的格式(日期)输入 x 坐标,或者转换坐标。如果您想坚持使用 x=.25,您可以使用:

ax.text(0.25,ymax[i],id[i], transform=ax.transAxes, fontsize=15)

它将文本放置在斧头宽度的四分之一处。

于 2013-01-07T15:35:20.123 回答
0

一种方法是将日期转换为数字并在后续调用中使用该数字:

dates = matplotlib.dates.date2num([x])
ax.text(dates[0], y, message, color='red')

其中 x 是您要转换的日期时间,假定 y 不是日期时间格式而是数字格式,并且 message 包含您要显示的字符串。

于 2015-07-29T14:11:22.460 回答