Python Matplotlib绘图技巧全面总结
一、Pyplot子库绘制2D图表
1、Matplotlib Pyplot
Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。
使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt:
import matplotlib.pyplot as plt
就可以使用 plt 来引用 Pyplot 包的方法。
以下实例,我们通过两个坐标 (0,0) 到 (6,100) 来绘制一条线:
import matplotlib.pyplot as plt
import numpy as np
# 使用 numpy 构造数组作为数据
x=np.array([0,6]) # x轴的数据
y=np.array([0,100]) # y轴的数据
plt.plot(x, y)
plt.show() # 让图形得到显示
plot() 用于画图它可以绘制点和线,语法格式如下:
# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。 fmt:可选,定义基本格式(如颜色、标记和线条样式)。 **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。
线型参数:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。
标记字符:‘.’ 点标记,‘,’ 像素标记(极小点),‘o’ 实心圈标记,‘v’ 倒三角标记,‘^’ 上三角标记,‘>’ 右三角标记,‘<’ 左三角标记…等等。
2、实例:绘制sin、cos函数,并指定线型和颜色
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,4*np.pi,0.1) # 0-4pi 每隔0.1取一个数
# 直接调用numpy里面的三角函数
y=np.sin(x)
z=np.cos(x)
plt.plot(x,y,'r-.',x,z,'b:')# 第一条线的参数、样式,第二条线的参数、样式
plt.show()
3、绘制散点图
import matplotlib.pyplot as plt
import numpy as np
x=np.array([1,2,3,4,5,6])
y=np.array([1,2,3,4,5,6])
plt.plot(x,y,'o')#实心点,绘制散点图
plt.show()
以上只是简单的使用了pyplot库。
二、Matplotlib 绘图标记
绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。 fmt 参数 fmt 参数定义了基本格式,如标记、线条样式和颜色。
fmt = '[marker][line][color]'
marker 可以定义的符号如下:
标记大小与颜色 我们可以自定义标记的大小与颜色,使用的参数分别是:
线的宽度 线的宽度可以使用 linewidth 参数来定义,简写为 lw,值可以是浮点数,如:1、2.0、5.67 等。
1、综合案例
(1)拐点带样式的散点图
y = np.array([1,5,3,54,6,3,67,4,23])
plt.plot(y,marker='o') # x轴参数不指定,则按0-n对应y轴参数
plt.show()
(2)多参数
import matplotlib.pyplot as plt
import numpy as np
y=np.array([3,5,1,8,4])
plt.plot(y,'o-.b',ms=15,mfc='r',mec='g')# 线条的样式、标记的大小、标记内部填充的颜色、标记的边框颜色
plt.show()
三、Matplotlib 轴标签和标题
设置轴标签和标题时,如果使用中文,可能会出现乱码情况,可以使用以下两行代码解决
plt.rcParams['font.sans-serif'] = [u'SimHei'] # SimHei就是中文字体
# 因为设置了中文后,负号就乱码了,所以还要设置负号的编码
plt.rcParams['axes.unicode_minus'] = False # 修改坐标轴中符号的编码
1、轴标签
可以使用 xlabel() 和 ylabel() 方法来设置 x 轴和 y 轴的标签。
2、标题
我们可以使用 title() 方法来设置标题。
案例:
作者:Python_P叔