据我所知,我的问题与this post密切相关。在
我需要绘制一些数据,标记大小与轴的值严格成比例。(已经问了问题here)。在
我的方法如下:
transData.transform
来获得这两点的像素值s=(size*dist_to_pix_ratio)**2
;但现在这并不重要。)问题是:当我完全按照我所描述的方式进行操作时,y轴和x轴的像素数有两个不同的值。
下面是一个最小的代码:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(7,7))
ax1 = fig.add_subplot(111, aspect='equal')
#setting up an empty scatterplot for pixel reference
xedges=[0.0, 1.0]
yedges=[0.0, 1.0]
emptyscatter=ax1.scatter(xedges, yedges, s=0.0)
#set axes limits
ax1.set_xlim(0.00,1.00)
ax1.set_ylim(0.00,1.00)
# Calculating the ratio of pixel-to-unit
upright = ax1.transData.transform((1.0,1.0))
lowleft = ax1.transData.transform((0.0,0.0))
x_to_pix_ratio = upright[0] - lowleft[0]
y_to_pix_ratio = upright[1] - lowleft[1]
print x_to_pix_ratio, y_to_pix_ratio
返回:
^{pr2}$有人能解释为什么他们不平等吗?
我不确定它是否相关,但我使用的是python2.7.12和matplotlib1.5.1
目前没有回答
相关问题 更多 >
编程相关推荐