现在有两组数据,要绘制成散点图。画完图后还要将坐标轴的标签重新改为时间格式
import matplotlib.pyplot as plt
from matplotlib.dates import mdate
x = [737014, 737015, 737015]
y = [0.58, 0.69, 0.45]
plt.scatter(x, y)
正常画完是这样的:
x轴数据其实从公元元年1月1日开始到某个日期的天数(0001年1月1日)
y轴表示某一时间点转换成秒数后除以全天转换成秒数的商
下面对坐标轴的刻度和表面进行改造:
首先x轴数据实际上只有两个,其中有两个数是重复的,所以先将坐标轴进行去重:
plt.gca().xaxis.set_major_locator(mdate.DayLocator())
其次x轴要显示成日期,所以再添加下面代码:
plt.gca().set_xticklabels(["2018-11-16", "2018-11-17", "2018-11-18" ])
如果不设置标签很容易会随机生成日期标签,不一定就是自己想要的。
最后进行时间格式设置
plt.gca().xaxis.set_major_formatter(mdate.DateFormatter("%Y/%m/%d"))
mdate.DateFormatter("%Y/%m/%d") 是设置时间显示的格式
真的很神奇,因为我并没有将天数转换成日期,只是设置了时间的显示格式。
可能是matplotlib内部设置的有转换机制吧。
如果不设置的话坐标轴显示的只有年份没有月份和天数。
像下面这样: