Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 轴的绝对定位_Python_Matplotlib - Fatal编程技术网

Python 轴的绝对定位

Python 轴的绝对定位,python,matplotlib,Python,Matplotlib,在matplotlib中,我尝试定位图形的轴,使轴矩形具有其自身的位置 左下角位于(100100),右上角位于(400400), 假设给定坐标的单位为点(pt) 但是创建的postscript文件生成轴的角实际上是 at(72,72)和(288): 因此,所有坐标偏离目标的常数因子为0.72。 应用transFiguretransform,我做错了什么吗 要计算轴的绝对位置?1个像素为0.72点fig.transFigure.inversed()从使用像素而不是点的显示空间进行变换。 准确地说,

在matplotlib中,我尝试定位图形的轴,使轴矩形具有其自身的位置 左下角位于(100100),右上角位于(400400), 假设给定坐标的单位为点(pt)

但是创建的postscript文件生成轴的角实际上是 at(72,72)和(288):

因此,所有坐标偏离目标的常数因子为0.72。 应用
transFigure
transform,我做错了什么吗
要计算轴的绝对位置?

1个像素为0.72点
fig.transFigure.inversed()
从使用像素而不是点的显示空间进行变换。 准确地说,您还需要考虑数字dpi(默认情况下dpi=100)。所以使用

ppd = 72./fig.dpi  # points per dot
mybbox = ax.get_position()
mybbox.x0, mybbox.y0 = fig.transFigure.inverted().transform((100/ppd, 100/ppd))
mybbox.x1, mybbox.y1 = fig.transFigure.inverted().transform((400/ppd, 400/ppd))
ax.set_position(mybbox)
应该导致

gsave
100 100 m
400 100 l
400 400 l
100 400 l
cl

在post脚本文件中。

我明白了。坐标必须指定为像素数,而不是点的长度。非常感谢。
ppd = 72./fig.dpi  # points per dot
mybbox = ax.get_position()
mybbox.x0, mybbox.y0 = fig.transFigure.inverted().transform((100/ppd, 100/ppd))
mybbox.x1, mybbox.y1 = fig.transFigure.inverted().transform((400/ppd, 400/ppd))
ax.set_position(mybbox)
gsave
100 100 m
400 100 l
400 400 l
100 400 l
cl