我有一张地图,我使用matplotlib从csv文件中绘制,我用pandas读取,我需要在textearea中显示我的数据的日期,所以我这样做:
Start =data.index.max()
End = data.index.min()
txt = 'Date debut:',End,'Date fin:',Start
props1 = dict(boxstyle='round', facecolor='wheat', alpha=0.5)
ax.text(0.17, 0.17, txt, transform=ax.transAxes, fontsize=8, bbox=props1, family = 'monospace')
plt.show()
正如你所看到的那样,这并不是一个令人满意的结果,所以我需要将地图上写的文字调整到地图的右下角,在日期和日期之间插入一个空格,最后隐藏'timestamp'从textarea只留下日期,我该怎么办?
答案 0 :(得分:1)
可以使用前两个参数来定位文本;只需用其他东西替换数字0.17即可。在这方面,使用ha
和va
(水平和垂直对齐)并设置它们以便可以轻松选择坐标(例如ha="right"
在指定坐标时有意义可能有所帮助右侧的情节)。请注意,如果对您有意义,您可能会选择负值。
要很好地格式化字符串,首先要将Timestamp转换为字符串。这是使用strftime
方法完成的。作为参数,您可以指定格式化标记,例如"%d %b %Y"
日月格式。当然可以在python documentation。
一个完整的例子可能是:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d = pd.date_range("2017-01-01","2017-06-30",freq="D" )
x = np.random.rand(len(d))
data = pd.DataFrame(x, index=d)
fig, ax = plt.subplots()
start = data.index.min().strftime("%d %b %Y")
end = data.index.max().strftime("%d %b %Y")
txt = "Date debut: {}, date fin: {}".format(start, end)
props1 = dict(boxstyle='round', facecolor='wheat', alpha=0.5)
ax.text(0.98, 0.03, txt, transform=ax.transAxes, fontsize=8, bbox=props1,
family = 'monospace', ha="right", va="bottom")
plt.show()