首页 分享 matplotlib基本操作(一)(附完整代码)

matplotlib基本操作(一)(附完整代码)

来源:花匠小妙招 时间:2025-05-01 16:56

Matplotlib是Python最著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图,也可以作为绘图控件方便地嵌入GUI应用程序中。今天来记录一下一些基本的操作。我们可以用这些基本的操作来展开丰富的想象力,画出高大上的图。

首先要导入matplotlib模块和numpy

import matplotlib.pyplot as plt import numpy as np 12

紧接着我们运行两行图像设置命令,用来正常显示中文标签和负号

plt.rcParams['font.sans-serif'] = ['SimHei'] #用来显示正常的中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 12

首先,我们先定义范围和取值

x = np.linspace(1,10,10) #表示在1~10之间等间隔取10个数 1

接着定义函数,这里以余弦函数为例

y = np.cos(x) 1

展示一下图形

plt.plot(x,y) 1

在这里插入图片描述
可以看到是一个折线图,原因就在于上面linspace的第三个参数过小,也就是取得点太少,比如我们设置1000再看一下

import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] #用来显示正常的中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 x = np.linspace(1,10,1000) y = np.cos(x) plt.plot(x,y) 1234567

在这里插入图片描述
就是非常优雅的曲线啦!

我们在显示图形的时候可以对线进行小小的“打扮”一下。比如我想要它是蓝色的,想要它在每个取点处都有一个 * 的标记,就暂且是流畅的实线我们通过这样的方式来实现

plt.plot(x,y,'b*-') 1

b代表蓝色----blue
* 就代表每个点用这个记号来表示
- 就代表是 实线
在这里插入图片描述
这里附个链接,感兴趣的伙伴可以去研究一下
python中matplotlib的颜色及线条控制的示例

但是我感觉它还是不够精致,所以再介绍几个常用的参数

• linewidth #定义线条的宽度,可取任意实数 • alpha #定义线条的透明度,一般取值[0,1]之间 • drawstyle #定义描点方式 123

我们都使用一下看看效果

plt.plot(x,y,'b*-',linewidth = 10, alpha = 0.3, drawstyle = 'steps') 1

在这里插入图片描述
其中drawstyle中的参数有:default,steps,steps-pre,steps-mid,steps-post

不理解没关系,各种参数都运行一下就知道是怎么回事儿啦

(悄悄的说:linewidth = 10, alpha = 0.3 这个搭配还挺养眼)

接下来就是对图外面的一个展示
我想有个标题,想标注坐标轴,还想要网格线,方便看点。我们这样来实现

plt.title('我的matplotlib图') plt.xlabel('x轴') plt.ylabel('y轴') plt.grid() 1234

在这里插入图片描述
其中,网格线也是有各种各样的(线条的样式和颜色)看你喜欢哪一款
在这里插入图片描述
比如我就选择了 点线蓝色

这是一个完整的图,但是我想放大看局部怎么办呢?我们x轴就用xlim,y轴就用ylim。比如说我就放大x轴,看1~7的图像是什么样子的,我们这样来实现

plt.xlim(1,7) 1

在这里插入图片描述
y轴同理

在我们观察图像的时候,偶尔特别想要一个水平或者垂直的参考线,便于观察,清晰又直观。我们用axhline和axvline来实现

plt.axhline(0.5,color='blue',linewidth=6) 1

在这里插入图片描述
对应参数的意思分别是;
0.5----表示y=0.5的水平线,后面表示颜色和线的尺寸

这里有个小小的“偷懒”方法,很多单词都是可以简写的,比如:color----c, linewidth----lw, linestyle----ls。不信我们试试

plt.axvline(5,c='r',lw=5,ls='-.') 1

在这里插入图片描述
不建议初学者使用哦,还是踏踏实实好好背单词吧,熟练了之后再偷懒

光有参考线可能有不满足了,想有个区域来标记。可以借助axhspan和axvspan

plt.axhspan(2,3, facecolor='yellow', alpha=0.5) plt.axvspan(3,5,facecolor='c',alpha=0.5) 12

在这里插入图片描述
(不经意间发现了很多养眼的颜色!!)

任何高大上的图都有个图例,咱们也不例外
还记得前面展示图形的plt.plot(x,y,'b*-',linewidth = 10, alpha = 0.3, drawstyle = 'steps')吗?在后面加个label="xxx"。xxx就写自己定义的内容。
然后用legend命令来显示图例。

plt.plot(x,y,'b*-',linewidth = 10, alpha = 0.3, drawstyle = 'steps',label="y=cos(x)") plt.legend(loc= 1) 12

在这里插入图片描述
图例放置的位置也有很多,不想放在右上角也可以。
在这里插入图片描述
数字还是英文,两种方法随便选择

在坐标轴的个别点还想写点名字,x轴就用xticks,y轴用yticks

plt.xticks([3,4,5],['甲','乙','丙']) 1

在这里插入图片描述
在x轴的3,4,5 的点上就写上了 甲、乙、丙

图上好多线条之后容易混乱,想做个标记分清哪条线是什么,防止记混。我们可以用text来添加图形内容细节的无指向型注释文本。比如我想给y=cos(x)来标记一下

plt.text(7,-0.75,'y=cos(x)',weight='bold',color='b') 1

7,-0.5----表示位置
‘y=cos(x)’----表示标注的内容
weight=‘bold’-----表示对字体的粗细设置

weights=['ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'] 1

color=‘b’----表示字体颜色
在这里插入图片描述
之后相对图上某个点,或者某个区域进行标注。我们可以采用annotate添加图形内容细节的指向型注释文本

plt.annotate("最大值",xy=(5,1),xytext=(1,1.5),arrowprops=dict(arrowstyle="->")) 1

“最大值”----添加的文本内容
xy=(5,1)----被添加文本的位置
xytext=(1,1.5)----添加文本的位置
arrowprops=dict(arrowstyle="->")----以->的方式来添加
在这里插入图片描述

以下附上完整代码:

import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] #用来显示正常的中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 x = np.linspace(1,10,10) y = np.cos(x) plt.plot(x,y,'b*-',linewidth = 10, alpha = 0.3, drawstyle = 'steps',label="y=cos(x)") plt.xlim(1,7) #显示哪一段 plt.ylim(1,8) plt.title('我的matplotlib图') plt.xlabel('x轴') plt.ylabel('y轴') plt.grid(linestyle=':',color='b') #网格线 plt.axvline(5,c='r',lw=5,ls='-.') #竖直线 plt.axhline(0.5,color='blue',linewidth=6) #水平线 plt.axhspan(0,1, facecolor='yellow', alpha=0.5) #水平区域 plt.axvspan(3,5,facecolor='c',alpha=0.5) #竖直区域 plt.legend(loc= 1) #图例 plt.xticks([3,4,5],['甲','乙','丙']) #x轴的标签名称 plt.text(7,-0.75,'y=cos(x)',weight='bold',color='b') #添加图形内容细节的无指向型注释文本 plt.annotate("最大值",xy=(5,1),xytext=(1,1.5),arrowprops=dict(arrowstyle="->")) #添加图形内容细节的指向型注释文本

123456789101112131415161718192021

相关知识

【python绘图】matplotlib基本使用(含实例)
Python多彩的玫瑰花(完整代码)
matplotlib交互式图表:提升用户体验的5大策略
Python中交互式Matplotlib图表
Matplotlib也可以渲染出交互式的可视化图表
Python画玫瑰花完整代码
Python可视化实战:使用Matplotlib创建精美图表
【神经网络与深度学习】使用MNIST数据集训练手写数字识别模型——[附完整训练代码]
HTML浪漫动态表白代码+音乐(附源码)(一)
python之数据分析Matplotlib

网址: matplotlib基本操作(一)(附完整代码) https://www.huajiangbk.com/newsview1824420.html

所属分类:花卉
上一篇: 中国历来有在节日放烟花的习俗.P
下一篇: 烟花高清图片

推荐分享