Matplotlib刻度相对于轴的位置

20

在Matplotlib中,是否存在一种方法可以像Origin默认情况下那样,在标签和轴之间设置刻度?在线示例部分没有展示这个功能的单个绘图。我喜欢将刻度放在绘图区域外面,因为有时候绘图隐藏了内部的刻度。


与https://dev59.com/xmUq5IYBdhLWcg3wMNmu密切相关。 - tacaswell
2个回答

34

仅设置主要刻度:

ax = plt.gca()
ax.get_yaxis().set_tick_params(direction='out')
ax.get_xaxis().set_tick_params(direction='out')
plt.draw()

设置所有刻度线(次要和主要)

ax.get_yaxis().set_tick_params(which='both', direction='out')
ax.get_xaxis().set_tick_params(which='both', direction='out')
plt.draw()

同时设置 x 和 y 轴:

ax = plt.gca()
ax.tick_params(direction='out')

坐标轴级别文档图像级别文档

要相对于刻度移动刻度标签,请使用pad。比较

ax.tick_params(direction='out', pad=5)
plt.draw()

随着

ax.tick_params(direction='out', pad=15)
plt.draw()

在这里http://matplotlib.org/api/pyplot_api.html?highlight=pyplot.draw#matplotlib.pyplot.draw; 他们说如果修改的序列以show()结束,则不需要plt.draw()。尽管在查看plt.draw()定义之前我曾尝试过它:但是它并没有改变任何东西。那么什么是“pad”? - user1850133
@user1850133 请查看 tick_param 的文档(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)。它可以设置刻度和标签之间的间距。 - tacaswell
没有选项允许使用tick_params定位刻度标签。 - user1850133
@user1850133 如果这个解决了你的问题,你可以请点击接受吗? - tacaswell
设置特定轴:ax.tick_params(direction='out', axis='x', pad=5) - nvd
显示剩余3条评论

0
我猜你需要这个:
通过获取subplot对象,您可以调整刻度。
ax = plt.subplot(111)
yax = ax.get_yaxis()
plt.xticks(y_pos, city)
xtickNames=ax.set_xticklabels(city)
plt.setp(xtickNames, rotation=45, fontsize=10)

以下是旋转45度的刻度输出


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接