Python matplotlib三维条形函数

问题描述:

如何在Axes3D中添加字符串而不是数字?Python matplotlib三维条形函数

我刚开始使用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)) 

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

你实际上在正确的道路上。但不是字符串,你会想要传递一个列表或元组到set_xticklabels()。你也可以用set_xticks()来调整标签的中心位置。

您可能还会发现使用get_xmajorticklabels()这个函数。它会返回呈现的刻度标签。所以你也可以从结果中调整价值。

还检索轴数据,工作,并将其设置回渲染器,原来是我更简单;)除此之外,什么NerdyNick说