2015-11-10 69 views
3

我如何使用点/英寸的尺寸绘制matplotlib形状?Matplotlib补丁大小点

我已经通过了补丁/转换的文件,所以我知道如何在像素数据,斧头或图形坐标工作,但我无法弄清楚如何维度点/英寸的矩形。

理想我想以定位数据坐标的矩形,但设置其大小的点,就像线标记是如何工作的。

这里的情节我想创建的一个例子。我现在将黑色和红色框放在(数据,轴)坐标中。这工作时,该图是一个已知大小,但是当它被重新调整为箱变小甚至通过文字大小是不变的失败。

enter image description here

enter image description here

+0

你见过[这](http://stackoverflow.com/questions/332289/how-do-you-change-the-size-of-figures-drawn-与-matplotlib)。你可以在最后进行转换。 –

+0

我附上了一些显示问题的图片。我想我可以阅读图形大小并计算轴的哪一部分代表一定数量的英寸,但看起来非常脆弱。 – user65

回答

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