matplotlib只显示部分横坐标刻度,隐藏部分横坐标刻度

该博客介绍了如何利用matplotlib库中的ticker模块来优化时间序列图的横坐标显示。通过设置MajorLocator为MultipleLocator(24),只显示每24个刻度中的一点,即整点时间,以提升图表的美观性和易读性。示例代码展示了在Seaborn的lineplot中应用这一技巧,分别绘制了'flow'和'occupy'两个指标随时间变化的曲线图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比如针对一个时间序列,从0点到24点,每分钟的横坐标都显示出来,一是影响美观,而是不方便抓住重点。因此我们只想要显示部分数据的横坐标,比如只显示整点时间的横坐标。

运用工具:matplotlib.ticker

代码:

import matplotlib.ticker as ticker
import seaborn as sns
for i, k in enumerate(detids[:1]):
    temp_img = model_data[model_data['detid'] == k]
    for day in days[:1]:
        temp_img = temp_img[temp_img['day'] == day]       
        idx= pd.date_range(start=day, periods=480, freq='180S').strftime('%H:%M:%S')
        temp_img['time'] = idx
        fig = plt.figure(figsize=(10, 8))
        plt.rcParams['axes.facecolor']='snow'   # 图的背景颜色
        fig.patch.set_facecolor('white')       # 画布的背景颜色
        ax = plt.subplot(2, 1, 1)    
        plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(24))   # 设置显示24个横坐标
        sns.lineplot(x='time', y='flow', data=temp_img)
        ax.set_title('flow')     
        ax = plt.subplot(2, 1, 2)
        plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(24))   # 设置显示24个横坐标
        sns.lineplot(x='time', y='occ', data=temp_img)
        ax.set_title('occupy')
        plt.suptitle(k + ' ' + day)
        plt.tight_layout()

效果如下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值