我使用 设计了一个子图matplotlib。我正在尝试扭转xticks剧情。请参阅示例代码-
import numpy as np
import matplotlib.pyplot as plt
# generate the data
n = 6
y = np.random.randint(low=0, high=10, size=n)
x = np.arange(n)
# generate the ticks and reverse it
xticks = range(n)
xticks.reverse()
# plot the data
plt.figure()
ax = plt.subplot(111)
ax.bar(x, y)
print xticks # prints [5, 4, 3, 2, 1, 0]
ax.set_xticks(xticks)
plt.show()
Run Code Online (Sandbox Code Playgroud)
请注意xticks。虽然ax.set_xticks(xticks)已经使用了,但是并xticks没有改变。我是否缺少一些重新渲染绘图的函数调用?
以下是系统信息——
matplotlib.__version__
'2.1.1'
matplotlib.__version__numpy__
'1.7.1'
python --version
Python 2.7.15rc1
Run Code Online (Sandbox Code Playgroud)
请注意,我只想反转刻度,不想反转轴。
使用ax.set_xticks,您当前指定的刻度位置与列表的顺序无关。要么你通过[0, 1, 2, 3, 4, 5],要么你通过[5, 4, 3, 2, 1, 0]。在刻度中不会注意到差异。相反,您想要的是拥有您应该做的反向刻度标签set_xticklabels(xticks[::-1])。有两种方法可以做到这一点:
方式一
使用plt.xticks其中第一个参数指定刻度的位置,第二个参数指定相应的刻度标签。具体来说,xticks将提供刻度位置并xticks[::-1]用反向刻度标签标记您的图。
xticks = range(n)
# plot the data
plt.figure()
ax = plt.subplot(111)
ax.bar(x, y)
plt.xticks(xticks, xticks[::-1])
Run Code Online (Sandbox Code Playgroud)
方式2使用ax你需要的地方set_xticklabels得到你想要的东西
ax.set_xticks(xticks)
ax.set_xticklabels(xticks[::-1])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5445 次 |
| 最近记录: |