繁体   English   中英

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

[英]How to make an affine transformation of a plot?

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

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

我当前代码的问题是子图从y轴开始为0,这意味着我用该轴的负坐标打印我的文本。 使用我正在使用的工具(Sphinx),它会裁剪绘图,并且不会显示低于0或高于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),这样我就可以用正坐标显示文本。 显然,如果可以用其他解决方案完成,我会接受它。

你知道我怎么能这样做吗?

matplotlib.pyplot.subplots_adjust做了诀窍:保存图像时可以看到整个文本。

看到这篇文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM