Matplotlib点数大小

时间:2015-11-10 16:59:52

标签: python matplotlib

如何使用点/英寸尺寸在matplotlib中绘制形状?

我已经阅读了补丁/转换文档,因此我了解了如何在像素,数据,轴或图形坐标中工作,但我无法弄清楚如何以点/英寸标注矩形。

理想情况下,我想在数据坐标中放置一个矩形,但是将其大小设置为点,就像行标记的工作方式一样。

以下是我要创建的图表示例。我目前将黑色和红色框放在(数据,轴)坐标中。当图形是已知大小时,这种方法有效,但当它重新调整时,即使文本大小不变,框也会变小,这会失败。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

在这个问题的帮助下结束了这个问题:How do I offset lines in matplotlib by X points

没有内置的方法来指定点中的补丁尺寸,因此您必须手动计算轴或数据坐标与英寸/点的比率。这个比例当然会根据图形/轴的大小而变化。

这是通过在轴变换中运行(1,1)点并查看它在像素坐标中的最终位置来实现的。然后可以通过图dpi将像素转换为英寸或点。

t = axes.transAxes.transform([(0,0), (1,1)])
t = axes.get_figure().get_dpi() / (t[1,1] - t[0,1]) / 72

# Height = 18 points
height = 18 * t

enter image description here enter image description here