如何用Python绘制三维柱形图

  

本文主要讲解如何使用python绘制三维的柱形图,如下图

  

如何用Python绘制三维柱形图

  

源代码如下:

        进口numpy np   进口matplotlib。pyplot作为plt   从mpl_toolkits。mplot3d进口Axes3D      #构造需要显示的值   X=np。不等(0 5步骤=1)# X轴的坐标   Y=np。不等(0 9步骤=1)# Y轴的坐标   #设置每一个(X, Y)坐标所对应的Z轴的值,在这边Z (X, Y)=X + Y   Z=np。0(形状=(5、9))   因为我在范围(5):   j的范围(9):   Z (i, j)=我+ j      xx, yy=np。meshgrid (X, Y) #网格化坐标   X, Y=xx.ravel (), yy.ravel() #矩阵扁平化   底=np.zeros_like (X) #设置柱状图的底端位值   Z=Z.ravel() #扁平化矩阵      宽度=身高=1 #每一个柱子的长和宽      #绘图设置   无花果=plt.figure ()   ax=fig.gca(投影=? d”) #三维坐标轴   斧子。bar3d (X, Y,底部,宽度,高度,Z,阴影=True) #   #坐标轴设置   ax.set_xlabel(“X”)   ax.set_ylabel (Y)   ax.set_zlabel (Z(值))   plt.show ()      

代码解读:

  

<强> 1,构造需要显示的数据

  

如下图所示,X坐标取值为(0,1,2,3,4),Y坐标取值为(0,1,2,3,4,5,6,7,8),每一个(X, Y)组合的值Z=X + Y,所需要绘制的图就是在X, Y所对应的坐标位置上面根据Z的值来绘制柱形图。

  

如何用Python绘制三维柱形图

  

<强> 2,坐标设置

  

将坐标网格化,X=[0, 1, 2, 3, 4), Y=[0, 1, 2, 3, 4, 5, 6, 7, 8)网格化的结果,如下图所示。可以理解为,X参照Y进行了广播(广播),Y参照X进行了广播,分别添加了一个新的维度,并且进行复制。结合xx和yy就得到了所有的X, Y的坐标组合,经过扁平化之后这种对应关系保持不变。代码中的底部是用来设置绘制每一个柱子的Z坐标的,在此全部都设置为0,而宽度和高度设置每一个柱子的长和宽。

  

如何用Python绘制三维柱形图

  

<强> 3,bar3d

  

ax。bar3d (X, Y,底部,宽度,高度,Z,阴影=True):
  X, Y:柱子在XY平面的起始坐标
  底部:柱子在Z轴上的起始坐标
  宽度,高度:柱子的长宽
  Z:数字沿Z轴的长度
  影:是否显示阴影(设置为真正立体效果会更好)

  

shde=True   

如何用Python绘制三维柱形图

  

=False阴影   

如何用Python绘制三维柱形图

  

如果需要绘制多个子图,并且里面每一个子图都是3 d的,只需要将上述代码进行些许修改即可,案例如下:

        无花果=plt.figure ()   ax=无花果。add_subplot(1、3、1、投影=? d”)   斧子。bar3d (x, y, z,宽度,高度,高层,阴影=True)      ax=无花果。add_subplot(1、3、2、投影=? d”)   斧子。bar3d (x, y, z,宽度,高度,top2,阴影=True)      ax=无花果。add_subplot(1, 3, 3,投影=? d”)   斧子。bar3d (x, y, z,宽度,高度,超越,阴影=True)      plt.show ()      

以上就是如何用Python绘制三维柱形图的详细内容,更多关于Python绘制柱形图的资料请关注其它相关文章!

如何用Python绘制三维柱形图