Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib中的条形图上生成3d效果?_Python_3d_Matplotlib_Bar Chart - Fatal编程技术网

Python 如何在matplotlib中的条形图上生成3d效果?

Python 如何在matplotlib中的条形图上生成3d效果?,python,3d,matplotlib,bar-chart,Python,3d,Matplotlib,Bar Chart,我有一个非常简单的基本酒吧的图形像这一个 但是我想用一些3d效果来显示这些条,就像这样 我只想让这些条具有3d效果…我的代码是: fig = Figure(figsize=(4.6,4)) ax1 = fig.add_subplot(111,ylabel="Valeur",xlabel="Code",autoscale_on=True) width = 0.35 ind = np.arange(len(values)) rects = ax1.bar(ind, values, width,

我有一个非常简单的基本酒吧的图形像这一个

但是我想用一些3d效果来显示这些条,就像这样

我只想让这些条具有3d效果…我的代码是:

fig = Figure(figsize=(4.6,4))
ax1 = fig.add_subplot(111,ylabel="Valeur",xlabel="Code",autoscale_on=True)

width = 0.35
ind = np.arange(len(values))
rects = ax1.bar(ind, values, width, color='#A1B214')
ax1.set_xticks(ind+width)
ax1.set_xticklabels( codes )
ax1.set_ybound(-1,values[0] * 1.1)
canvas = FigureCanvas(fig)
response = HttpResponse(content_type='image/png')
canvas.print_png(response)

我一直在matplotlib画廊里寻找,尝试了一些东西,但我运气不好,有什么想法吗?据我所知,Matplotlib在设计上不支持像您刚才提到的“3D”效果这样的功能。我记得不久前读到过这方面的文章。我不知道这段时间有什么变化

有关更多详细信息,请参见此

更新


看看约翰·波特的模块。这不是标准matplotlib的一部分,而是自定义扩展。我本人从未使用过它,所以不能说它有多大用处。

我当然理解您需要3d条形图的原因;我怀疑这就是它们被创造的原因

创建三维打印所需的Matplotlib中的库(“工具箱”)不是第三方库等,而是包含在基本Matplotlib安装中。 (目前的稳定版本是1.0,但我不认为它适用于0.98,所以从“附加组件”到基本安装的一部分的更改发生在过去一年内,我相信)

给你:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as PLT
import numpy as NP

fig = PLT.figure()
ax1 = fig.add_subplot(111, projection='3d')

xpos = NP.random.randint(1, 10, 10)
ypos = NP.random.randint(1, 10, 10)
num_elements = 10
zpos = NP.zeros(num_elements)
dx = NP.ones(10)
dy = NP.ones(10)
dz = NP.random.randint(1, 5, 10)

ax1.bar3d(xpos, ypos, zpos, dx, dy, dz, color='#8E4585')
PLT.show()
要在Maplotlib中创建三维栏,您只需执行三项(附加)操作:

  • 从mpl_toolkits.mplot3d导入Axes3D

  • 调用bar3d方法(在我的scriptlet中,ax1将其称为Axis类的实例)。方法签名:

    bar3d(x,y,z,dy,dz,color='b',zsort='average',*args,**kwargs)

  • 传入一个附加参数以添加_子图,projection='3d'


  • 哇,太多了!。。我将尝试安装mpl_toolkits.mplot3d,然后我将尝试看看是否有可能实现我想要的功能该工具包现在是基本matplotlib安装的一部分(我相信这是从1.0开始的,它是当前的稳定版本),因此您要么已经有了它,或者只是升级Matplotlib就可以了。你也许可以用它解决一些问题。除了混乱之外,3D条还能增加什么呢?只要没有人强迫你做这个“3D”,请:别管它。我被签支票的人逼着了