matplotlib用面向对象来描绘图标辅助元素(坐标轴的标签,刻度标签,还有图表的标题,图例,网格)

该博客主要介绍使用Python的Matplotlib库设置图表辅助元素。包括导入模块、创建画布、添加绘图区域、绘制折线图,还详细说明了设置x、y轴标签、刻度范围、刻度标签,添加标题、图例和显示网格等操作,最后给出完整代码及部分补充信息。

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

图标辅助元素的设置

(1)导入模块

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体(解决中文无法显示的问题)
plt.rcParams['axes.unicode_minus'] = False    # 解决保存图像时负号“-”显示方块的问题

(2)创建面向对象fig的画布

fig = plt.figure()

(3)在画布fig上添加绘图区域

ax = fig.add_subplot(111)

(4)准备x,y轴的数据并用plot()绘制折线图

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)   #在-π到π之间平均地生成256个点
y1,y2 = np.sin(x), np.cos(x)

ax.plot(x, y1, x, y2)

其中,np.pi是π的转义字符

          

(5)用 xlabel() 和 ylabel() 设置x,y轴的标签

ax.set_xlabel("x轴")

ax.set_ylabel("y轴",labelpad = 25,  # 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
             fontdict = {'color':'r',            # 标签颜色
                         'fontsize':'15',         # 标签文本大小
                         'rotation':'0'})          # 字体旋转角度

其中,labelpad:表示标签与坐标轴边框的距离

           fontdict:表示控制标签文本样式的字典

(6)用xlim() 和 ylim() 来设置x,y轴的刻度范围

ax.set_xlim(left = x.min() * 1.5, right = x.max()  * 1.5)

其中,left 和 right :表示x轴刻度的取值区间的左右位数

           xmin 和 xmax :表示x轴刻度的最小最大值

(7)用xticks() 和 yticks() 来设置x,y轴的刻度标签

ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
              [r'$-\pi$',   r'$-\pi/2$',   r'$0$',    r'$\pi/2$',   r'$\pi$'])

ax.set_yticks([-1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00],
              [r'$-1$',    r'$-\frac{3}{4}$',   r'$-\frac{1}{2}$',  r'$-\frac{1}{4}$',  r'$0$',  r'$\frac{1}{4}$', r'$\frac{1}{2}$',   r'$\frac{3}{4}$',   r'$1$'])     

其中,'$字符串$' :为转义字符

           r'$字符串$' :在字符串前加r,不转义,把字符串当为原始字符显示

            \frac{分子}{分母} : 为分式的转义字符

           编写数学表达式(参考matplotlib官网)

(8)用title()函数添加图表的标题

ax.set_title("正弦曲线和余弦曲线")

(9)用legend()函数添加图例

lines = ax.plot(x, y1, x, y2)    #返回值
ax.legend(lines,['正弦','余弦'], loc='lower right', shadow=True, fancybox=True)

其中, shadow:控制图例的阴影

           fancybox:控制图例是否为圆角边框

           loc:控制图例在图标中的位置

           bbox_to_anchor:是loc的上位替代,会覆盖loc函数的指令,用于微调图例在画布上的位置

(10)用grid()函数显示网格

ax.grid(b=True, axis='y', linewidth=0.3)

plt.show()

其中,b:表示是否显示网格

           axis:表示显示那个方向的网格

          linewidth:表示网格的宽度

          which:表示网格的类型(major,minor,both三种)

上述的完整代码如下:

import numpy as np
import matplotlib.pyplot as plt
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轴",labelpad = 25,        # 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
             fontdict = {'color':'r',     # 标签颜色
                         'fontsize':'15', # 标签文本大小
                         'rotation':'0'}) # 字体旋转角度

ax.set_xlim(left = x.min() * 1.5, right = x.max()  * 1.5)
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
              [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])

ax.set_yticks([-1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00],
              [r'$-1$', r'$-\frac{3}{4}$', r'$-\frac{1}{2}$', r'$-\frac{1}{4}$',
              r'$0$',
              r'$\frac{1}{4}$', r'$\frac{1}{2}$', r'$\frac{3}{4}$', r'$1$'
              ])
ax.set_title("正弦曲线和余弦曲线")
lines = ax.plot(x, y1, x, y2)
ax.legend(lines,['正弦','余弦'], loc='lower right',  shadow=True, fancybox=True ,bbox_to_anchor=(1,0.5))

ax.grid(b=True, axis='y', linewidth=0.3)
plt.show()

运行结果如下:

补充 

loc参数的取值

一般的转义字符号

小写希腊字母

标准函数名称

分隔符

二元运算符

还有其他的特殊符号查询matplotlib官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值