matplotlib 条形图(o图)3D

ukqbszuj  于 2023-05-01  发布在  其他
关注(0)|答案(5)|浏览(116)

我需要用各种形式绘制一些数据。目前我使用的是Matplotlib,我对我能够制作的情节相当满意。
这个问题是关于如何策划最后一个。数据类似于“距离表”,如this(只是更大,我的表是128x128,每个元素仍然有3个或更多的数字)。
现在,我的数据比距离表更“结构化”(我的数据不会像字母排序的距离表那样“随机”变化),因此3D barchart,或者可能是3个,将是完美的。我的理解是,Matplotlib中缺少这样的图表。
我可以使用一个(彩色)Countor3d,比如these,或者像imshow这样的2D,但它并不能很好地代表数据是什么(数据只有在我的128个点中有意义,两个点之间没有任何东西)。而且酒吧的高度比颜色更具可读性,海事组织。
因此问题是:
1.可以在Matplotlib中创建3D条形图吗?应该清楚的是,我指的是2D域,而不仅仅是一个带有“假”3D渲染的2D条形图
1.如果前面问题的答案是否定的,那么是否有其他库能够做到这一点?我非常喜欢基于Python的东西,但我也可以接受其他Linux友好的可能性
1.如果前一个问题的答案是否定的,那么您对如何显示这些数据有什么建议吗?例如,创建一个表格,将值叠加到imshow或其他彩色方式?

2g32fytz

2g32fytz1#

matplotlib已经有一段时间没有3D支持了,但现在已经添加回了recently。你需要使用svn版本,因为它还没有发布,文档也比较少(参见examples/mplot 3d/ www.example.com 不知道mplot 3d是否支持真实的的3D条形图,但其中一个演示看起来有点像它可以扩展到类似的东西。
编辑:演示的源代码是the examples的,但由于某种原因,结果不是。我指的是test_polys函数,它看起来是这样的:
example figure http://www.iki.fi/jks/tmp/poly3d.png
test_bar2D函数会更好,但在演示中被注解掉了,因为它会导致当前版本的svn出错.可能是一些微不足道的问题,或者更难解决的问题。

aamkag61

aamkag612#

MyavaVi2可以制作3D条形图(向下滚动一点)。一旦你有MayaVi/VTK/ETS/等等。安装它的所有工程漂亮,但它可以是一些工作得到它的所有安装。Ubuntu已经打包了所有这些,但它们是我所知道的唯一一个Linux发行版。

33qvvth1

33qvvth13#

另一种可能性是Gnuplot,它可以绘制某种伪3D条形图,gnuplot.py允许从Python接口到Gnuplot。我自己也没有试过。

xzabzqsa

xzabzqsa4#

这是我使用matplotlib编写的一个简单的Bar-3d代码。

import mpl_toolkits
from mpl_toolkits.mplot3d import Axes3D   
import matplotlib.pyplot as plt
%matplotlib inline

## The value you want to plot 
zval=[0.020752244,0.078514652,0.170302899,0.29543857,0.45358061,0.021255922,0.079022499,\
  0.171294169,0.29749654,0.457114286,0.020009631,0.073154019,0.158043498,0.273889264,0.419618287]    

fig = plt.figure(figsize=(12,9))
ax = fig.add_subplot(111,projection='3d')
col=["#ccebc5","#b3cde3","#fbb4ae"]*5
xpos=[1,2,3]*5
ypos=range(1,6,1)*5
zpos=[0]*15
dx=[0.4]*15
dy=[0.5]*15
dz=zval

for i in range(0,15,1):
     ax.bar3d(ypos[i], xpos[i], zpos[i], dx[i], dy[i], dz[i],     
color=col[i],alpha=0.75)

ax.view_init(azim=120)
plt.show()

http://i8.tietuku.com/ea79b55837914ab2.png

gg58donl

gg58donl5#

您可以查看Chart Director:
http://www.advsofteng.com
它有各种各样的图表和图形,并有一个很好的Python(和其他几种语言)API。
有两个版本:免费版本在生成的图像上放一个简介,付费版本的价格相当合理。
下面是一个看起来更有趣的3D堆叠条形图:

(来源:advsofteng.com

相关问题