【问题标题】:3d bargraph issue in MatplotlibMatplotlib 中的 3d 条形图问题
【发布时间】:2012-02-19 01:48:01
【问题描述】:

当我制作具有 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 时,我得到了这个:

【问题讨论】:

标签: python 3d matplotlib bar-chart


【解决方案1】:

这是因为你只给它 3 分来绘制。只需将代码更改为以下代码即可。

indexs = np.arange(4)  # not 3
heights = np.random.rand(4) # not 3

【讨论】:

    【解决方案2】:

    这几乎可以肯定是一个错误。尝试您的示例代码为我提供了具有任意数量点的矩形条的所需结果(用 1、2、3、5、15 测试):

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

    import matplotlib
    print matplotlib.__version__
    

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

    【讨论】:

    • 该代码在 OS X 10.7.4 上的 Python 2.7.3/Matplotlib 1.1.1 上也可以正常工作,因此它确实可能是一个错误。
    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2016-11-15
    • 2021-12-21
    • 1970-01-01
    • 2021-06-23
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多