Matplotlib特殊图例总结
面积图 stackplot
plt.stackplot(x, y1, y2, y3, ..., colors=[])
热力图
首先:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
plt.imshow(data)
plt.colorbar() # 把用到的颜色展示出来
实质上就是把数值映射到一定范围上的rgb
值上,形成看起来比较直观的图形。
一个复杂点的例子,有点类似曲面在水平面上的投影:
3D条形图
关键代码:
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure()
axes3d = Axes3D(fig) # 把fig关联到Axes3D上,得到一个可以进行3d绘图的基础
axes3d.bar(x, y, zs=z)
3D曲面图
# x, y都是二维数组 z是一维的
axes3d.plot_surface(x, y, z, cmap=plt.get_cmap('rainbow'))
雷达图
直接用plt.polar
说是雷达图,其实可以说是 极坐标下的图
plt.polar(极角, 极径,点的形状,图形宽度)
plt.polar(0.25*np.pi, 20, 'ro', lw=3)
极角 极径可以指定为数组,但是这样得到的是一个个离散的点。
将点的形状参数后面加上-
, 如 ro-
, 表示把点一次连接起来。
如果需要闭合,需要让极角极径首尾元素相同。
如果需要填充,plt.fill(极角, 极径, facecolor填充色, alpha透明度)
注意:
endpoint=False
, 不包括最后一个,以免首尾重复plt.thetagrids(角度, 标签, fontproperties字体)
指定特定角度上的标签,而不是默认的角度值。