matplotlib中的刻度,标签(重置自定义标签)

matplotlib中的刻度,标签(重置自定义标签)

目录

设置标题、轴标签、刻度和刻度标签

首先我们通过随机漫步生成简单的图表:

import numpy as np
import matplotlib.pyplot as plt
# 生成随机漫步数据
data = np.random.randn(1000).cumsum()
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(data)
plt.show()

在这里插入图片描述

要改变x轴刻度,最简单的方式是使用set_xticksset_xticklabels。set_xticks表示在数据范围内设定刻度的位置,默认情况下这些刻度也有标签。但是我们可以使用set_xticklabels来为标签赋值:

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(data)
# ticks在原数据的范围内
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
plt.show()

在这里插入图片描述

使用set_xticksset_xticklabels来自定义标签:

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(data)
# ticks在原数据的范围内,设定主刻度的位置
ax.set_xticks([0, 250, 500, 750, 1000])
# 设置主刻度的标签, 带入主刻度旋转角度和字体大小参数
ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'], rotation=30, fontsize=12)
ax.set_title('My frist plot') # 设置ax标题
ax.set_xlabel('Stages') # 设置x轴标签
plt.show()

在这里插入图片描述

补充示例:

我们一般绘图时会遇到时间刻度的问题:

import pandas as pd
# 产生3天分辨率为一小时的时间序列
time_series = pd.date_range('2019-11-01', freq='H', periods=24*3)
data = np.random.randn(24*3).cumsum()
ax = plt.subplot()
ax.plot(time_series, data)
plt.show()

在这里插入图片描述

原生的优化还是不错的,我们自己手动实现一个优化版本,将月份也提取出来(都是11月的数据):

def get_day_hour(timestamp):
    return '{:0>2} {:0>2}'.format(timestamp.day, timestamp.hour)
ax = plt.subplot()
xticks = list(range(24*3))
ax.plot(data)
# 自动处理时间的时候,右边界有处理,手动处理时要自己添加
#(根据图表结果判断需不需要处理)
ax.set_xticks(xticks[::12]+[len(xticks)])
ax.set_xticklabels(list(map(get_day_hour, time_series[::12]))+['04 00'])
ax.set_xlabel('2019-11')
plt.show()

在这里插入图片描述
由此可见set_xticksset_xticklabels的联合使用可以解决自定义x坐标轴刻度的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值