用面向对象思路为python数据可视化的图表添加辅助元素的定制,例如:坐标轴的标签,刻度范围和刻度标签,图表标题,图例,指定样式的网格,参考线,参考区域,注释文本,自定义样式的表格

在学习为图表添加辅助元素的定制前,小伙伴们首先需要认识图表有哪些组件,以下这张图可以帮助小伙伴认识有哪些辅助元素

在图中可以看到有许多圆圈,一个圆圈对应一个组件,圆圈下面加粗字体是所圈内容的组件名称,组件名称下面是它的用法,需要注意的是这个用法对应的是面向对象,面向函数的用法图中没有涉及,这两个用法相似,在下面的实例中这两个用法都有涉及


坐标轴的标签

在绘制好图表后,有时候会为图表添加坐标轴的标签来明确x和y轴的意义,由于x轴和y轴标签用法几乎一样,下面就x轴为例来介绍坐标轴的标签(如果是y轴,就将x改y)


面向对象语法:

Axes.set_xlabel(xlabelfontdict=Nonelabelpad=None*loc=None**kwargs)

参数说明:
xlabel:表示x轴标签的文本
fontdict:表示控制标签文本样式的字典,默认值是None
labelpad:表示标签与x轴轴脊间的距离,默认值是None 

面向函数语法:
matplotlib.pyplot.xlabel(xlabelfontdict=Nonelabelpad=None*loc=None**kwargs)

参数说明:
xlabel:表示x轴标签的文本
fontdict:表示控制标签文本样式的字典
labelpad:表示标签与x轴轴脊间的距离

对这个组件来说,这两个用法的区别是这两个的调用方式不同,面向对象是Axes.set_xlabel(),面向函数是matplotlib.pyplot.xlabel(),参数用法一致


面向对象


import matplotlib.pyplot as plt
import numpy as np
# 显示中文
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建画布
fig = plt.figure()
# 在画布上添加绘图区域
ax = fig.add_subplot(111)
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
# 绘制图表
ax.plot(x,y1,x,y2)

# 添加辅助元素的定制
# 设置坐标轴标签
ax.set_xlabel('x轴')     # x轴
ax.set_ylabel('y轴')     # y轴
plt.show()

面向函数


import matplotlib.pyplot as plt
import numpy as np

# 显示中文
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
# 绘制图表
plt.plot(x,y1,x,y2)
# 设置坐标轴标签
plt.xlabel('x轴')
plt.ylabel('y轴')
# 展示图表
plt.show()

结果:左图为添加坐标轴标签,右图没有添加坐标轴标签



刻度范围和刻度标签


当我们根据数据绘制图表时,坐标轴显示的刻度范围和刻度都与数据的分布有着直接的联系
注意:
1.若绘图时没有指定任何数据,也就是说只创建一个绘图区域,
该区域中没有任何内容,则x轴和y轴的刻度范围默认为0.0~1.0,
刻度标签为[0.0,0.2,0.4,0.6,0.8,1.0];
2.若绘图时指定了x轴和y轴的数据。刻度范围和刻度标签会随着数据的变化而变化,
其中坐标轴的刻度范围是由数据中的最大值的最小值决定的

面向对象的语法

刻度范围语法:Axes.set_xlim(left=Noneright=None*emit=Trueauto=Falsexmin=Nonexmax=None))

参数说明:

left:表示x轴刻度取值区间的左位数
right:表示x轴刻度取值区间的右位数
emit:表示是否通知限制变化的观察者默认为True
auto:表示是否允许自动缩放x轴,默认为True

刻度位置语法:

Axes.set_xticks(tickslabels=None*minor=False**kwargs)

ticks:表示显示自定义刻度的列表,该参数可以设置空列表,以此禁用x轴的刻度
labels:表示显示为ticks参数设置过的刻度添加标签

刻度标签语法:

Axes.set_xticklabels(labels*minor=Falsefontdict=None**kwargs)

labels:为Axes.set_xticks()设置过的ticks刻度显示添加标签

fontdict:自定义设置标签样式的字典

面向函数语法

刻度范围语法:

matplotlib.pyplot.xlim(left=Noneright=None*emit=Trueauto=Falsexmin=Nonexmax=None)

参数说明:
left:表示x轴刻度取值区间的左位数
right:表示x轴刻度取值区间的右位数
emit:表示是否通知限制变化的观察者默认为True
auto:表示是否允许自动缩放x轴,默认为True


刻度标签语法:

matplotlib.pyplot.xticks(ticks=Nonelabels=None*minor=False**kwargs)

参数说明:
ticks:表示显示刻度位置的列表,该参数可以设置空列表,以此禁用x轴的刻度
labels:表示对ticks位置过刻度添加标签的列表

Axes.set_xticks()Axes.set_xticklabels()都可以添加刻度标签,但Axes.set_xticklabels()更常用,因为它可以自定义设置标签的样式


面向对象


import matplotlib.pyplot as plt
import numpy as np

# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 创建画布
fig = plt.figure()
# 在画布上添加绘图区域
ax = fig.add_subplot(111)
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)

# 绘制图表
ax.plot(x, y1, x, y2)
# 添加图表辅助元素的定制
# 添加坐标轴标签
ax.set_xlabel('x轴')
ax.set_ylabel('y轴')
# 设置刻度范围和刻度标签
ax.set_xlim(x.min() * 1.5, x.max() * 1.5)       # 刻度范围
ax.set_xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi])        # 刻度位置
ax.set_xticklabels([r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])      # 刻度标签
# 展示图表
plt.show()

面向函数


import matplotlib.pyplot as plt
import numpy as np

# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
# 绘制图表
plt.plot(x, y1, x, y2)
# 添加图表辅助元素的定制
# 设置坐标轴标签
plt.xlabel('x轴')
plt.ylabel('y轴')
# 设置x轴的刻度范围和刻度标签
# 用面向函数
plt.xlim(x.min() * 1.5, x.max() * 1.5)  # 刻度范围
plt.xticks([-np.pi, -np.pi / 2, 0,  np.pi / 2, np.pi],       # 刻度位置
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])# 刻度标签
# 展示图表
plt.show()

结果:左图设置了刻度范围和刻度标签,右图没有设置刻度范围和刻度标签

当你需要在Python中创建折线图并精细调整坐标轴刻度间隔范围时,matplotlib.pyplot库提供了强大的工具来实现这一目标。为了深入理解这一过程,并获取实用的代码示例,推荐你查看资源《Python matplotlib.plot坐标轴刻度与范围设置教程》。 参考资源链接:[Python matplotlib.plot坐标轴刻度与范围设置教程](https://wenku.youkuaiyun.com/doc/6412b46ebe7fbd1778d3f92a?spm=1055.2569.3001.10343) 首先,导入必要的库并定义数据: ```python import matplotlib.pyplot as plt x = [0, 1, 2, 3, 4, 5] y = [0, 1, 4, 9, 16, 25] ``` 接下来,使用`plt.plot()`函数绘制折线图,并通过`plt.xticks()`与`plt.yticks()`函数设置坐标轴刻度位置: ```python plt.plot(x, y) plt.xticks([0, 1, 2, 3, 4, 5]) # 设置x轴的刻度位置 plt.yticks([0, 5, 10, 15, 20, 25]) # 设置y轴的刻度位置 ``` 如果需要设置刻度间隔,可以使用`MultipleLocator`类。例如,如果我们希望x轴的刻度每隔0.5个单位出现一次,y轴每隔5个单位出现一次,我们可以这样做: ```python from matplotlib.ticker import MultipleLocator plt.gca().xaxis.set_major_locator(MultipleLocator(0.5)) # 设置x轴刻度间隔为0.5 plt.gca().yaxis.set_major_locator(MultipleLocator(5)) # 设置y轴刻度间隔为5 ``` 最后,使用`plt.xlim()``plt.ylim()`函数来设置坐标轴的范围: ```python plt.xlim(-1, 6) # 设置x轴范围 plt.ylim(-2, 30) # 设置y轴范围 ``` 通过以上步骤,你就可以根据具体需求对matplotlib生成的折线图进行精细的坐标轴调整。为了更全面地掌握matplotlib的图表设置技巧,包括刻度标签的格式化、刻度线的颜色样式等高级设置,建议深入阅读《Python matplotlib.plot坐标轴刻度与范围设置教程》。这份资料不仅将帮助你解决当前遇到的问题,还将助你在Python数据可视化方面达到更高的水平。 参考资源链接:[Python matplotlib.plot坐标轴刻度与范围设置教程](https://wenku.youkuaiyun.com/doc/6412b46ebe7fbd1778d3f92a?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Life City

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值