如何对情节进行仿射变换?

时间:2019-03-26 14:19:57

标签: python matplotlib plot

使用matplotlib.pyplot,我想对子图进行仿射变换。

这是我的用例: 1.我想在同一行上绘制两个子图, 2.我想在子图下方添加一些文本(不使用xticks或xlabels,而是使用plt.text之类的东西) 3.我需要将文本限制在figsize限制内,即,文本的坐标必须在0到宽度/高度之间。

我当前代码的问题是,y轴的子图从0开始,这意味着我在该轴上用负坐标打印文本。使用我正在使用的工具(Sphinx),它可以裁剪图,并且不会显示低于0或高于高度的所有内容。

这是我现在正在做的一个小例子。这不起作用(部分文本不会显示)。

import numpy as np
import matplotlib.pyplot as plt


plt.figure(figsize=(12, 4))

plt.subplot(121)
plt.plot(np.arange(10), 'o')
plt.xticks([], [])
for i in range(10):
    plt.text(i , - 1 + (i - 10) / 4, str(i), fontsize=17, color='C0')

plt.subplot(122)
plt.plot(np.arange(2, 12), 'o')
plt.xticks([], [])
for i in range(10):
    plt.text(i, 1 + (i - 10) / 4, str(i + 2), fontsize=17, color='C0')

plt.show()

我想将绘图限制在一定的高度范围内,例如(1,3),这样我就可以显示带有正坐标的文本。显然,如果可以用其他解决方案来完成,那么我会接受的。

您知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

matplotlib.pyplot.subplots_adjust达到了目的:保存图像时可以看到整个文本。

请参阅此other post