通过matplotlib绘制柱状图,python做可视化数据图表

  通过matplotlib绘制柱状图,python做可视化数据图表

  Python Matplotlib实现3D/4D数据的直方图绘制

  1.背景最近在查阅多维信息显示时,了解到三维信息可以通过Matplotlib中的三维图像显示部分来实现,但涉及到三维以上的数据显示时,可以使用雷达图进行显示。雷达图可以显示多维信息。如下图所示:

  那么三维柱形图最多能显示X、Y、Z的信息。但是在上一篇关于绘制三维散点图的文章中,提到了里面的颜色可以用变量代替,而不仅仅是字符串。因此,从冷到暖的声调变化过程是否可以作为一种新的维度度量?

  二。效果演示按照这个思路,我做的实际效果图如下图所示:

  自然包含了Xlabel,Ylabel,Amplitude。同时可以根据第四维的数据来控制可变颜色,通过颜色的深浅来显示数据的变化。如果只是三维变量,可以用颜色来表示振幅的值。如果数值较大,色调偏暖,一个漂亮的路人效果会更好。在matplotlib官网,看到了一个很喜欢的效果展示。以后有时间可以研究一下。

  三。实施步骤

  发布代码,其中一些步骤会被注释。参考代码是Matplotlib官网图库中的一个例子,portal。

  基于上述分析,对该代码进行了如下改进:

  将scipy.io作为sio导入

  从mpl_toolkits.mplot3d导入Axes3D

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  def检测图():

  data=SiO . loadmat( f:\ detection . mat )#完成数据的导入

  M=data[data]#与M数组形成对应关系。

  图=plt.figure()

  Ax=fig.add _ plot (111,projection= 3d) # add_subplot在此处使用,因为它将与其他图像一起显示。如果只展示一张图,可以用plot。

  x=m[0]

  y=m[1]

  z=m[2]

  X=x.flatten(F) #flatten函数从声明中可以看出。

  y=y.flatten(F )

  #更改柱形图的颜色。这里不导入第四维信息,可以用z表示。

  C=[]

  对于z中的a:

  如果10:

  c .追加( b )

  elif a 20:

  附加( c )

  elif a 30:

  C.append(m )

  elif a 40:

  c .追加(“粉色”)

  elif a 39:

  c .追加( r )

  #这里,dx、dy、dz是三个变量,决定了3D柱形图中柱的长、宽、高。

  dx=0.6 * np.ones_like(x)

  dy=0.2 * np.ones_like(y)

  dz=abs(z) * z.flatten()

  dz=dz.flatten()/abs(z)

  z=np.zeros_like(z)

  #设置三个维度的标签

  ax.set_xlabel(Xlabel )

  ax.set_ylabel(Ylabel )

  ax.set_zlabel(振幅)

  ax.bar3d(x,y,z,dx,dy,dz,color=C,zsort=average )

  plt.show()

  检测图()

  2017年8月7日

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: