matplotlib绘图-设置横坐标为日期显示范围与间隔

Matplotlib坐标轴优化

matplotlib绘图 调整横坐标与纵坐标范围与间隔

  • 主要模块pylot的xticks/yticks
  • 生成日期使用pandas库date_range模块
  • 日期格式使用dates模块

这里介绍坐标标签为数值与时间格式的最常用及最简单做法,举例:

1、纵坐标标签显示数值20到100,间隔为10

2、横坐标标签显示时间2018-9-1 到 2018-11-30,间隔为10天

目标图形坐标轴显示如下:

python代码:
import matplotlib.pyplot as plt
import matplotlib.dates as mdate

##绘图代码省略,坐标轴设置如下
ax = plt.gca()   #表明设置图片的各个轴,plt.gcf()表示图片本身
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))  # 横坐标标签显示的日期格式
plt.xticks(pd.date_range('2018-9-1','2018-11-30',freq='10d')) #横坐标日期范围及间隔
plt.yticks(range(20, 110, 10))  #设置纵坐标,使用range()函数设置起始、结束范围及间隔步长

注意,如果不加语句plt.gca().xaxis.set_major_formatter(md

### 如何在 Matplotlib设置横坐标刻度 为了控制 Matplotlib 图像中的横坐标刻度,可以使用多种方法来调整其外观和位置。以下是几种常用的技术: #### 使用 `set_xticks` 方法指定刻度位置 通过调用轴对象的 `set_xticks` 函数可以直接设定哪些数值作为刻度点。 ```python import numpy as np import matplotlib.pyplot as plt # 创建数据 x = range(0, 25) # 假设这是小时数 y = [i * i for i in x] fig = plt.figure() ax = fig.add_subplot(111) # 绘制折线图 ax.plot(x, y) # 设置显示整点时刻度 ax.set_xticks(np.arange(min(x), max(x)+1, step=1)) plt.show() ``` 此代码片段设置了从最小值到最大值之间每隔一单位就有一个刻度的位置[^2]。 #### 自定义刻度标签 如果希望不仅改变刻度位置还修改对应的标签文字,则可以通过组合使用 `set_xticklabels` 来实现这一点。 ```python hours = ['{}:00'.format(i) for i in range(24)] ax.set_xticks(range(len(hours))) ax.set_xticklabels(hours) ``` 这段脚本会把每一个刻度替换成相应的时间字符串表示形式。 #### 调整刻度密度可见性 对于非常密集的数据集来说,可能并不适合全部展示所有的刻度标记;此时可以选择性的让某些特定间隔下的刻度显现出来而隐藏其他不必要的细节。 ```python for label in ax.get_xticklabels(): if int(label.get_text()) % 3 != 0: label.set_visible(False) ``` 上述例子展示了如何遍历现有的 X 轴上的所有标签,并依据条件决定它们是否应该被渲染于最终图表之上。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值