python - Matplotlib 中的 3d 条形图问题

标签 python 3d matplotlib bar-chart

当我制作一个包含 4 个或更多值的 3d 条形图时,图形看起来是正确的,但是当我尝试使用 3 个值时,条形变成三角形,这是怎么回事?

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

color_grade_classes = ['#80FF00','#FFFF00','#FF8000', '#FF0000']

for colors, rows  in zip(color_grade_classes, [3,2,1,0] ):  
  indexs = np.arange(3)
  heights = np.random.rand(3)
  print rows, indexs, heights, colors

  ax.bar(indexs, heights, zs = rows,  zdir='y', color=colors, alpha=0.8)

ax.set_xlabel('X')
ax.set_ylabel('Y')

plt.show()

生成这个:

Triangular bar

但是当我将索引和高度的数量增加到 5 时,我得到了这个:

Correct bar

最佳答案

这几乎可以肯定是一个错误。尝试您的示例代码可以得到矩形条的预期结果,具有任意数量的点(使用 1、2、3、5、15 进行测试): Example of code working as desired for 3 points

我在 Linux 上运行 matplotlib 版本 1.1.1rc。如果可以,请尝试更新到最新版本。注意

import matplotlib
print matplotlib.__version__

会告诉您您使用的是什么版本。

关于python - Matplotlib 中的 3d 条形图问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010132/

相关文章:

c++ - 从 glLookAt() 到 glRotatef() 和 gltranslatef

c++ - 如何在某些世界坐标下绘制立方体,OpenGL

python - 如何将绘图线颜色从蓝色更改为黑色?

python - 将模型字段序列化为嵌套对象/字典

python - 在 Python 中的 2 个字典列表之间搜索公共(public)元素的最快方法

python - 用于 Python 的 3D 场景渲染器

python - 将数组归一化为标准正态分布

python - matplotlib 中的 3d 表面

python - 如何返回numpy结构化数组中多列的 View

python - QT 样式表不产生任何结果