如何在matplotlib中的绘图画布中放置可变长度刻度标签?

问题描述 投票:1回答:1

我想把这个:what it looks like now变成类似这样的东西:what it should look like

我遇到的所有说明都只是在标签位置上应用了一个偏移量,因此只有在标签宽度已知时才有效。

用于生成与示例类似的绘图的代码:

#!/usr/bin/env python3
import matplotlib.pyplot as plt
yvalues = [ 'short name', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'slightly longer name' ]
xvalues = [ [1, 5], [3, 7], [2, 6] ]
fig, ax = plt.subplots()
fig.set_size_inches(1280/fig.get_dpi(), 720/fig.get_dpi())
ax.axvline(40)
for i in range(len(yvalues)):
    ax.plot(xvalues[i], (yvalues[i], yvalues[i]))
plt.show()
python matplotlib plot
1个回答
0
投票

在代码中添加以下两行

ax.tick_params(axis="y", direction="in", pad=-10)
plt.setp(ax.get_yticklabels(),ha="left")

将导致以下情节

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.