【问题标题】:Python matplotlib 3d bar functionPython matplotlib 3d条形函数
【发布时间】:2010-12-02 00:41:09
【问题描述】:

如何在 Axes3D 中向坐标轴添加字符串而不是数字?

我刚开始使用 matplotlib。我使用 Axes3dD 绘制了类似于他们网站 (http://matplotlib.sourceforge.net/examples/mplot3d/bars3d_demo.html) 上给出的示例的绘图。请注意,必须使用最后一个版本(matplotlib 0.99.1),否则轴会有点怪异。该示例使用此代码:

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

fig = plt.figure()  
ax = Axes3D(fig)  
for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]):
    xs = np.arange(20)
    ys = np.random.rand(20)
    ax.bar(xs, ys, zs=z, zdir='y', color=c, alpha=0.8)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

现在我的问题是,我无法将轴重命名为我想要的。我需要将订书钉命名为字符串名称,而不是数字。这我只想在两个维度上做——x 维度和 z 维度(深度)。我试过用这个命令:

ax.set_xticklabels('First staple',(0,0))

我没有收到任何错误消息,但仍然没有刺痛。如果有人能回答这个问题,我将非常高兴!

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您实际上在正确的道路上。但您需要将列表或元组传递给 set_xticklabels(),而不是字符串。您可能还希望使用 set_xticks() 调整标签的中心位置。

    您还可以找到使用 get_xmajorticklabels() 的这个函数。它将返回渲染的刻度标签。因此,您也可以根据结果调整值。

    【讨论】:

      【解决方案2】:

      还检索轴数据,对其进行处理并将其设置回渲染器,结果对我来说要简单得多;)除此之外,NerdyNick 所说的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-19
        • 1970-01-01
        • 1970-01-01
        • 2012-03-15
        • 2015-10-26
        • 2016-11-15
        • 2021-12-21
        • 1970-01-01
        相关资源
        最近更新 更多