如何将字符串添加到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))
我没有收到任何错误消息,但仍然没有刺痛。如果有人能回答这个问题,我会非常高兴!
答案 0 :(得分:2)
你实际上是在正确的道路上。但是你需要将列表或元组传递给set_xticklabels()而不是字符串。您可能还希望使用set_xticks()调整标签的中心位置。
您也可以使用get_xmajorticklabels()找到此函数。它将返回渲染的刻度标签。因此,您也可以从结果中调整值。
答案 1 :(得分:0)
同时检索轴数据,对其进行处理并将其设置回渲染器,结果对我来说简单得多;)除此之外,NerdyNick说什么