Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib的绘图画布中放置可变长度的记号标签?_Python_Matplotlib_Plot - Fatal编程技术网

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

Python 如何在matplotlib的绘图画布中放置可变长度的记号标签?,python,matplotlib,plot,Python,Matplotlib,Plot,我想把这个转变为: 变成类似这样的东西: 我遇到的所有说明都只是将偏移应用于标签位置,因此仅当标签的宽度已知时才起作用 生成与示例类似的绘图的代码: #!/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

我想把这个转变为: 变成类似这样的东西:

我遇到的所有说明都只是将偏移应用于标签位置,因此仅当标签的宽度已知时才起作用

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

#!/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()

向代码中添加以下两行

ax.tick_params(axis="y", direction="in", pad=-10)
plt.setp(ax.get_yticklabels(),ha="left")
将导致以下绘图


您的代码示例生成第二个图形。你说你想要与第二张图“相似”的东西,但没有描述你想要不同的东西。Y轴上记号的标签。我希望它们在绘图画布内,而不是外部。代码生成了一个外形,外形与第一张图像一样。您的代码不工作缺少的部分是
ha=“left”
。现在我简直不敢相信我从来没有在我做的任何搜索中包括“对齐”。