Matplotlib之设置坐标轴刻度及标签

 

现在有两组数据,要绘制成散点图。画完图后还要将坐标轴的标签重新改为时间格式

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)

正常画完是这样的:

Matplotlib之设置坐标轴刻度及标签_第1张图片

x轴数据其实从公元元年1月1日开始到某个日期的天数(0001年1月1日)

y轴表示某一时间点转换成秒数后除以全天转换成秒数的商

下面对坐标轴的刻度和表面进行改造:

首先x轴数据实际上只有两个,其中有两个数是重复的,所以先将坐标轴进行去重:

plt.gca().xaxis.set_major_locator(mdate.DayLocator())

Matplotlib之设置坐标轴刻度及标签_第2张图片

其次x轴要显示成日期,所以再添加下面代码:

plt.gca().set_xticklabels(["2018-11-16", "2018-11-17", "2018-11-18" ])

Matplotlib之设置坐标轴刻度及标签_第3张图片

如果不设置标签很容易会随机生成日期标签,不一定就是自己想要的。

最后进行时间格式设置

plt.gca().xaxis.set_major_formatter(mdate.DateFormatter("%Y/%m/%d"))

mdate.DateFormatter("%Y/%m/%d") 是设置时间显示的格式

Matplotlib之设置坐标轴刻度及标签_第4张图片

真的很神奇,因为我并没有将天数转换成日期,只是设置了时间的显示格式。

可能是matplotlib内部设置的有转换机制吧。

如果不设置的话坐标轴显示的只有年份没有月份和天数。

像下面这样:

 

你可能感兴趣的:(matplotlib,Python)