【发布时间】:2019-03-26 14:19:57
【问题描述】:
使用 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),这样我就可以用正坐标显示文本。显然,如果可以通过其他解决方案来完成,我会接受。
你知道我该怎么做吗?
【问题讨论】:
-
检查这个链接,如果这给了你一个想法。 stackoverflow.com/questions/16872026/…
-
您可以指定对文本对象的转换:matplotlib.org/gallery/text_labels_and_annotations/…
-
感谢您的回复! matplotlib.pyplot.subplots_adjust 成功了。
-
@johann.faouzi 很高兴,您找到了答案。请回答问题,以便它也可以帮助某人。 :D
标签: python matplotlib plot