如何在matplotlib中设置tick label2

时间:2017-03-01 13:10:07

标签: python matplotlib

我想在左侧为y轴创建一组数字,在右侧为y轴创建一组不同的数字。不幸的是,当我尝试自己设置标签时,它们并没有显示在最终的数字中。

这是我尝试过的。

import matplotlib.pyplot as plt

fig, sub = plt.subplots(1, 1)
sub.set_yticks([5, 10, 15])
for tick, lab in zip(sub.yaxis.get_major_ticks(), [1, 2, 3]):
    tick.label2On = True
    tick.set_label('')
    tick.set_label1('{:3.1f}'.format(lab*3))
    tick.set_label2('{:3.1f}'.format(lab))
    print(tick.label1.get_text(), '\txxx\t', tick.label2.get_text())
# try to force an update of the figure
fig.canvas.draw()
plt.show()

输出

3.0     xxx  1.0
6.0     xxx  2.0
9.0     xxx  3.0

所以文本正在勾选对象中更新,但是当我调用plt.show()时,我只在轴的两侧看到5,10和15(原始值):

enter image description here

我打算尝试使用twinx破解某些内容,但我知道如何正确地执行此操作

1 个答案:

答案 0 :(得分:0)

fig, ax = plt.subplots(figsize=(3,1))
ax.axes.set_xticklabels([1,10])