python 如何在酒吧上制作3D效果

oaxa6hgo  于 2023-05-05  发布在  Python
关注(0)|答案(2)|浏览(130)

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

但我想显示一些三维效果的酒吧,像这样

我只是想让这些条有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的画廊,尝试了一些东西,但我不幸运,任何想法?Thxs

5fjcxozz

5fjcxozz1#

我当然理解你需要一个3D条形图的原因;我怀疑这就是为什么他们被创造出来。
Matplotlib中创建3D图所需的库('toolkits')* 不是 * 第三方库等,而是 * 包含在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中创建3d条形图,您只需执行三项(附加)操作:

  1. import***Axes3D***from mpl_toolkits.mplot3d
    1.调用***bar 3d***方法(在我的scriptlet中,它由Axes类的示例 * ax 1 * 调用)。方法签名:
    bar3d(x,y,z,dy,dz,color='b',zsort=“average”,*args,**kwargs)
    1.向add_subplot传递一个附加参数,projection ='3d'

v8wbuo2f

v8wbuo2f2#

据我所知,Matplotlib并不支持你刚才提到的“3D”效果。我记得以前阅读到过这个。我不知道在这段时间里它已经改变了。
请参阅此discussion thread了解更多详细信息。

更新

看看John Porter的mplot3d模块。这不是标准matplotlib的一部分,而是一个自定义扩展。我自己从来没有用过,所以不能说太多关于它的用处。

相关问题