【问题标题】:How to make an affine transformation of a plot?如何对情节进行仿射变换?
【发布时间】: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),这样我就可以用正坐标显示文本。显然,如果可以通过其他解决方案来完成,我会接受。

你知道我该怎么做吗?

【问题讨论】:

标签: python matplotlib plot


【解决方案1】:

matplotlib.pyplot.subplots_adjust 做到了:保存图片后可以看到整个文本。

看到这个other post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2010-12-17
    • 2017-06-02
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    相关资源
    最近更新 更多