当我制作一个包含 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()
生成这个:
但是当我将索引和高度的数量增加到 5 时,我得到了这个:
最佳答案
这几乎可以肯定是一个错误。尝试您的示例代码可以得到矩形条的预期结果,具有任意数量的点(使用 1、2、3、5、15 进行测试):
我在 Linux 上运行 matplotlib 版本 1.1.1rc。如果可以,请尝试更新到最新版本。注意
import matplotlib
print matplotlib.__version__
会告诉您您使用的是什么版本。
关于python - Matplotlib 中的 3d 条形图问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010132/