matplotlib画X轴时间的显示问题

很久没有在CSDN写博客了,非常地惭愧,在工作、学习上所遇到的难以越积越多,如果没有对问题进行有效的管理,不仅会使人心烦意乱不知所措,而且下次遇到同样的问题,又得四处找答案,浪费时间。废话又开始了。。。。。

今天遇到的问题为,在jupyter notebook上用matplotlib画一组与时间有关的数据,结果X轴的时间显示出现了点问题,主要代码片如下:

#画时间曲线的函数
def plot_curve1(data,title):
    plt.figure(figsize=(15,5))
    plt.title(title)
    plt.plot(data,'o-')
    plt.show()

data1,data2=read_data()  #读取数据
print(data1.head(10))    #打印前10行数据
plot_curve1(data1,'data1') #画data1数据

结果如下:
这里写图片描述
从图中可以看出,x轴显示了5个时间点,但我想要显示每一天,即2014-09-01到2014-09-30。于是我百度了一下matplotlib的官方文档,了解到了xticks的用法,于是又修改了代码。
代码如下:

def plot_curve1(data,title):
    fig1 = plt.figure(figsize=(15,5))
    plt.xticks(pd.date_range('2014-09-01','2014-09-30'),rotation=90)#设置时间标签显示格式
    plt.title(title)
    plt.plot(data,'o-')
    plt.show()

data1,data2=read_data()  #读取数据
print(data1.head(10))
plot_curve1(data1,'data1')

结果如下:
这里写图片描述
从图中可以知道,虽然X轴显示了30天,但是显示有问题,不能显示月份和日期,所以又去百度了一下,发现一个非常有借鉴意义的博客,链接在此:Matplotlib绘图双纵坐标轴设置及控制设置时间格式 - 推酷,通过该博客,我又修改了代码,代码如下:

import matplotlib.dates as mdate
def plot_curve1(data,title):
    fig1 = plt.figure(figsize=(15,5))
    ax1 = fig1.add_subplot(1,1,1)
    ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))#设置时间标签显示格式
    plt.xticks(pd.date_range('2014-09-01','2014-09-30'),rotation=90)
    plt.title(title)
    plt.plot(data,'o-')
    plt.show()

data1,data2=read_data()  #读取数据
print(data1.head(10))
plot_curve1(data1,'data1')

结果如下:
这里写图片描述
从图中可以看到,X轴的时间显示正常了。
最后,要注意一下代码的这一行,这一行是用来设置X轴的时间显示格式。

ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))#设置时间标签显示格式
  • 26
    点赞
  • 155
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值