matplotlib - 转换方法 transFigure 如何放置我的文本?
问题描述
我在理解 Matplotlib 图中文本位置的不同转换时遇到了问题。存在三个预定义的转换:
ax.transData
, ax.transAxes
,fig.transFigure
当我有以下代码时:
fig, ax = plt.subplots(facecolor='lightgray')
ax.axis([0, 10, 0, 10])
ax.text(1, 5, ". Data: (1, 5)", transform=ax.transData)
ax.text(0.2, 0.2, ". Figure: (0.2, 0.2)", transform=fig.transFigure)
没看懂第四行。第一个问题:我的情节中的 figsize 是什么?
我检查了文档字符串,plt.figure
它说默认的 figsize 是 6.4(以英寸为单位的宽度)和 4.8(以英寸为单位的高度)。但是当我使用时fig.get_figwidth
,fig.get_figheight
我看到宽度是 6.0 和宽度 4.0。为什么?假设 figsize 为 (6, 4):文本应出现在 figsize(x 坐标)的 20% 和 figsize(y 坐标)的 20% 处。那是对的吗?
解决方案
我检查了 plt.figure 的文档字符串,它说默认的 figsize 是 6.4(以英寸为单位的宽度)和 4.8(以英寸为单位的高度)。
确实,您可以检查源代码,其中显示[6.4, 4.8]
。
但是当我使用 fig.get_figwidth 和 fig.get_figheight 时,我看到宽度是 6.0 和宽度 4.0。为什么?
因为您,您使用的解释器或您已加载的另一个库已经更改了这些设置。
假设 figsize 为 (6, 4):文本应出现在 figsize(x 坐标)的 20% 和 figsize(y 坐标)的 20% 处。那是对的吗?
对,那是正确的。坐标从图的左下角开始。
推荐阅读
- html - 如何防止 IE 11 上 iframe 中的图像滚动?
- c# - 如何修复sqlite中的“没有这样的列”
- java - 使用 (int)(1+(Math.random()*16)) 选择任何 3 个索引时,选择 17 个元素列表的 3 个特定索引的概率是多少
- postgresql - 如何使用 plpgsql 将服务器上的文件移动到另一个目录?
- c# - 在 `Task.Run` 中使用 `Result` 的有效性如何
- php - Laravel SQLSTATE[HY000] [2002] 当“控制器”中的命令但在 Tinker 中正常显示时,连接被拒绝
- c - 返回字符串长度小于输入字符串长度
- javascript - 在类中使用扩展类的方法
- java - 滚动时 ListAdapter 出现问题
- python - Python - Pygame - 为什么没有检测到碰撞?