Как изменить выравнивание текста matplotlib? - PullRequest
0 голосов
/ 27 июня 2019

Я хочу сделать график в 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 голосов
/ 27 июня 2019

Текстовые команды Matplotlib, например для надписей и аннотаций, поддерживают ряд аргументов ключевых слов, которые влияют на выравнивание, ориентацию, интервал, шрифт и т. Д. Полный список свойств текста можно найти в документации.,В приведенном выше примере

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

добьется цели.(Как отмечено в другом ответе, это злоупотребление меткой оси Y и поэтому не рекомендуется.)

0 голосов
/ 27 июня 2019

Я бы не стал так манипулировать йелабелем.Вместо этого просто поместите текст в нужное место.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...