我试图生成一个有四个季度的图,每个季度都有一些关于该季度的文字。然而,当我试图 Package 文字时,我不知道如何设置文字的限制。例如,在附图中,我想将文字限制为x=0
。然而,它将一直持续到x轴极限的结束。请找到随附的代码和代码生成的相应图。
import matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from textwrap import wrap
font = {'size': 22}
matplotlib.rc('font', **font)
fig = plt.figure(figsize=(8, 8))
plt.axis([-10, 10, -10, 10])
ax = plt.gca()
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
plt.xlabel('Energy ($kWh$)')
ax.xaxis.set_label_coords(0.85, .48)
ax.xaxis.set_ticks_position('bottom')
ax.set_xlim(-10, 10)
ax.xaxis.set_ticks([])
plt.ylabel('Discomfort ($\%$)', rotation=0)
ax.yaxis.set_label_coords(0.7, 0.01)
ax.yaxis.set_ticks_position('left')
ax.set_ylim(-10, 10)
ax.yaxis.set_ticks([])
ax.annotate(
'Reference Point', xy=(0, 0), xycoords='data',
xytext=(-10, 2), textcoords='data', wrap=True,
arrowprops=dict(facecolor='black'))
t = "This is a really long string that I'd rather have wrapped so that
it doesn't go outside of the figure, but if it's long enough it will go
off the top or bottom!"
ax.text(-10, 3.5, t, ha='left', wrap=True, fontsize=20)
plt.tight_layout()
plt.savefig('sample.png')
1条答案
按热度按时间hjzp0vay1#
正如在auto wrap demo中可以看到的那样, Package 发生在图的限制。虽然这不是很舒服,我可以想象很多情况下,这根本没有帮助,在这里,它允许通过选择正确的对齐方式来 Package 文本。