3D图
- 看成是没有厚度的曲面
导包
from mpl_toolkits.mplot3d.axes3d import Axes3D
生成三维座标系 projector 投影仪
plt.subplot(projection='3d')
生成数据
y = wx + b
x, y = np.linspace(0, 2*np.pi, 100), np.linspace(0, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
查看形状
X.shape
Y.shape
第三维跟前两维的关系
Z = np.sin(X) + np.cos(Y) + 2
绘制图形
plt.figure(figsize=(2* 8, 8))
axes1 = plt.subplot(1,2,1, projection='3d')
axes1.plot_surface(X, Y, Z)
axes2 = plt.subplot(1,2,2, projection='3d')
axes2 = axes2.plot_surface(X,Y,Z, cmap='rainbow')
plt.colorbar(axes2, shrink=0.5)
玫瑰图
- 极座标条形图
- 适合画气象图
创建极座标条形图
plt.subplot(projection='polar')
例子:拉文纳城市 各个方向上的刮风次数
读取数据
ravenna = np.load('./Ravenna_wind.npy')
ravenna
使用np.histogram计算一组数据的直方图
data, degree = np.histogram(ravenna, bins=8, range=[0, 360])
display(data.shape, degree.shape)
原来degree是9个方向,现在重新划分为8个方向
degree = np.arange(0, 2*np.pi, 2*np.pi / 8)
degree.shape
data
ravenna
plt.figure(figsize=(8,8))
plt.subplot(projection='polar', facecolor='g')
plt.bar(degree, data, color=np.random.rand(8,3), width=np.pi/4)