如何更改对齐matplotlib文本?

时间:2019-06-27 11:14:12

标签: python matplotlib

我想在matplotlib中制作一个图形,在其中可以更改旋转的y轴标签的对齐方式。

这是我编写的一些示例代码。理想情况下,“这是一个示例情节”将是合理的。

fig = plt.figure(figsize=(13, 10))
ax1 = fig.add_subplot(111)
sns.lineplot(
    x='x',
    y='y', 
    data=pd.DataFrame([{'x': 0, 'y': 0}, {'x': 1, 'y': 1}]),
    ax=ax1
)
ax1.set_ylabel('This is an\nexample plot', rotation=0)
ax1.yaxis.set_label_coords(0.05, 0.95)

Here is the plot as an image

2 个答案:

答案 0 :(得分:0)

我不会以这种方式操作ylabel。而是在您想要的位置放一些文本。

import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
import pandas as pd

fig, ax = plt.subplots()
ax.plot("x", "y", "-", data=pd.DataFrame([{'x': 0, 'y': 0}, {'x': 1, 'y': 1}]))

ax.add_artist(AnchoredText('This is an\nexample plot', "upper left", frameon=False))

plt.show()

enter image description here

答案 1 :(得分:0)

Matplotlib文本命令(例如用于标签和注释的文本命令)支持许多关键字参数,这些参数会影响对齐方式,方向,间距,字体等。完整的list of text properties可以在文档中找到。在上面的示例中

ax1.set_ylabel('This is an\nexample plot', rotation=0, horizontalalignment='left')

可以解决问题。 (如另一个答案中所述,这是y轴标签的滥用,因此不建议这样做。)