【数据分析day07】matplotlib 3D图 & 玫瑰图

matplotlib 3D图 & 玫瑰图

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)

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章