matplotlib基本操作(一)(附完整代码)
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 |
下一篇: 烟花高清图片 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039