python之pyplot
2022-01-27 本文已影响0人
jinjin1009
import matplotlib.pyplot as plt
1、定义x和y,画图展示,保存图片
x=[ 1, 2, 3, 4 ]
y=[ 1, 4, 9, 16 ]
plt.plot(x,y)
plt.savefig('test.png',dpi=120)
plt.show()
其中dpi参数指定图像的分辨率为120
2、优化绘图线条风格
color:线条颜色,值r表示红色 red
marker:点的形状,值o表示点为圆圈标记 circle marker
linestyle:线条的形状,值dashed表示用虚线连接各点
plt.plot(x,y,color='r',marker='o',linestyle='dashed')
线条颜色color
线条颜色 | 红 | 洋红 | 黄 | 绿 | 青 | 蓝 | 黑 | 白 |
---|---|---|---|---|---|---|---|---|
代码表示 | r | m | y | g | c | b | k | w |
线条标记marker
标记 | 描述 |
---|---|
o | 圆圈 |
+ | 加号 |
d | 小菱形 |
线条风格linestyle
线条风格 | 实线 | 虚线 | 破折线 | 点画线 | 无线条 |
---|---|---|---|---|---|
代码表示 | - | : | — | -. | None或者, |
3、坐标轴的控制
坐标轴范围和标题
axis:坐标轴范围
语法为axis[ xmin, xmax, ymin, ymax ]
也就是axis[ x轴最小值, x轴最大值, y轴最小值, y轴最大值 ]
xlabel/ylabel:坐标轴标题
plt.xlabel('x坐标轴')
plt.ylabel('y坐标轴')
plt.title('标题')
坐标图上标记
#添加注释,参数名xy:箭头注释中箭头所在位置,参数名xytext:注释文本所在位置
#arrowprops在xy和xytext之间绘制箭头,shrink表示注释点和注释文本之间的图标距离
plt.annotate('我是注释', xy=(2,5), xytext=(2,10), arrowprops=dict(facecolor='black',shrink=0.01))
plt.show()
![](https://img.haomeiwen.com/i25382171/2c2ec99fc82e377d.png)
坐标间隔设定
函数plt.xticks()和plt.xticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。用法上,函数的输入是两个列表,第一个表示取值,第二个表示标记。当然如果你的标记就是取值本身,则第二个列表可以忽略
plt.xticks([i * np.pi/2 for i in range(-4, 5)], [str(i * 0.5) + "$\pi$" for i in range(-4, 5)])
plt.yticks([i * 0.5 for i in range(-4, 5)])
![](https://img.haomeiwen.com/i25382171/e36904a77f51d3b2.png)
4、多图绘制
一图多曲线
import numpy as np
x = np.arange(-1, 1, 0.1)
y1 = np.exp(x)
y2 = np.exp(2 * x)
plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1)
plt.plot(x, y2, color="b", linestyle="-", marker="s", linewidth=1)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
多图与子图
figure()
函数可以帮助我们同时处理生成多个图,而subplot()函数则用来实现,在一个大图中,出现多个小的子图。需要注意的是,figure()
中的参数为图片序号,一般是按序增加的,这里面还涉及一个当前图的概念,其中subplot()
的参数有3个,分别为行数、列数、以及子图序号。比如subplot(1,2,1)
表示这是一个1行,2列布局的图(两个子图,在同一行,分居左右),其中,当前处理的子图是第一个图(也就是左图)。
import numpy as np
x = np.arange(-1, 1, 0.1)
y1 = np.exp(x)
y2 = np.exp(2 * x)
y3 = np.exp(1.5 * x)
plt.figure(1) # 生成第一个图,且当前要处理的图为fig.1
plt.subplot(1, 2, 1) # fig.1是一个一行两列布局的图,且现在画的是左图
plt.plot(x, y1, color="r", linestyle="-", marker="^", linewidth=1) # 画图
plt.xlabel("x")
plt.ylabel("y1")
plt.figure(2) # 生成第二个图,且当前要处理的图为fig.2
plt.plot(x, y2, color="k", linestyle="-", marker="s", linewidth=1) # 画图,fig.2是一张整图,没有子图,默认subplot(1, 1, 1)
plt.xlabel("x")
plt.ylabel("y2")
plt.figure(1) # 当前要处理的图为fig.1,而且当前图是fig.1的左图
plt.subplot(1, 2, 2) # 当前图变为fig.1的右图
plt.plot(x, y3, color="b", linestyle="-", marker="v", linewidth=1)
plt.xlabel("x")
plt.ylabel("y3")
plt.show()
这样,我们就用一个脚本画了两张图fig.1和fig.2。其中,fig.1包含了分居左右的两个子图,分别是y1和y3的曲线;fig.2是一张整图,画的是y2曲线。
如果想要某个子图占据整行或者整列,可以采用下面
第三个图,实际上相当于将前面的两个小的子图看作是一个整图
plt.subplot(221) # 第一行的左图
plt.subplot(222) # 第一行的右图
plt.subplot(212) # 第二整行
plt.show()