1. 画一个简单的图形
2. 在一张图纸里绘制多个图形
3. 更多设置
3.1
设置 figure
3.2
设置标题
3.3
设置坐标轴
3.4
设置 label 和 legend
3.5
添加注释
4. 使用子图
5. 常见的图形
5.1
散点图
5.2
柱状图
6. 中文乱码解决
以下简述下各部分要点:
1. 画一个简单的图形
import numpy as np
import pylab as plt
plt.plot(x, y)
plt.show()
2. 在一张图纸里绘制多个图形
(1)注意这里不需要matlab的hold on操作。
plt.plot(x, y)
plt.plot(x, y * 2)
plt.show()
(2)更丰富绘图:顺序是——颜色、点的形状、线型
plt.plot(x, y, 'y*-') #画图,颜色yellow,点为*,线型为-
常见的颜色:
蓝色
b
绿色
g
红色
r
青色
c
品红
m
黄色
y
黑色
k
白色
w
常见的点的表示方式:
点的类型
表示方式
点
.
像素
,
圆
o
方形
s
三角形
^
常见的线的表示方式:
线的类型
表示方式
直线
-
虚线
--
点线
:
点划线
-.
3. 更多设置
3.1
设置 figure
plt.figure(figsize=(6, 3)) #大小为(6,3),长为6,宽/高为3
3.2
设置标题、
plt.title("")
3.3
设置坐标轴——横纵轴标签、坐标范围、横纵轴刻度
plt.xlabel("")
plt.xlabel("")
plt.xlim((0, np.pi + 1))
#x是[0,pi+1]
plt.ylim((-3, 3))
plt.xticks((0, np.pi * 0.5, np.pi,
np.pi * 1.5, np.pi * 2))
#与plt.xticks(np.linspace(0,2*pi,5))
等价 [0,2pi]按照等差数列划分成5个刻度。
#x的刻度,也就是横轴以0 0.5pi pi 1.5pi 2pi
来划分。(之前默认为1个单位)
3.4
设置 label 和 legend
关键点;plot里写明标签,然后legend展示,loc='best'自动调整到合适的位置,一般是右上角
plt.plot(x, y,
label="sin(x)")
plt.plot(x, y * 2,
label="2sin(x)")
# plt.legend()
plt.legend(loc='best')
plt.show()
3.5
添加注释
有时候我们需要对特定的点进行标注,我们可以使用 plt.annotate
函数来实现。也可以使用 plt.text
函数来添加注释。————具体可见上面的链接
这里我们要标注的点是 (x0, y0) = (π,
0)。
plt.plot(x, y)
x0 = np.pi
y0 = 0
# 画出标注点
plt.scatter(x0, y0, s=50)
plt.annotate('sin(np.pi)=%s' % y0,
xy=(np.pi, 0), xycoords='data', xytext=(+30, -30),
textcoords='offset points',
fontsize=16,
arrowprops=dict(arrowstyle='->',
connectionstyle="arc3,rad=.2"))
plt.text(0.5, -0.25, "sin(np.pi) =
0", fontdict={'size': 16, 'color': 'r'})
plt.show()
4. 使用子图——subplot()
subplot(3,2,1) #表示第3行2列的第一个活跃区。
x1 = plt.subplot(2, 2, 1) #
(行,列,活跃区)
plt.plot(x, np.sin(x),
'r')
ax2 = plt.subplot(2, 2, 2,
sharey=ax1) # 与 ax1 共享y轴
plt.plot(x, 2 * np.sin(x),
'g')
ax3 = plt.subplot(2, 2,
3)
plt.plot(x, np.cos(x),
'b')
ax4 = plt.subplot(2, 2, 4,
sharey=ax3) # 与 ax3 共享y轴
plt.plot(x, 2 * np.cos(x),
'y')
plt.show()
5. 常见的图形
5.1
散点图scatter
5.2
柱状图bar
关键是:标注柱状图上的数据
for x, y in zip(x,
y):
plt.text(x, y , '%.2f' % y, ha='center',
va='bottom')
通过 plt.text 标注数值,设置参数 ha='center' 横向居中对齐,设置
va='bottom'纵向底部(顶部)对齐。
6. 中文乱码解决
作图时有时横纵轴等标签中文会出现乱码,此时后台配置字体:
plt.rcParams['font.sans-serif']=['SimHei']
#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False
#用来正常显示负号