gpt4 book ai didi

Python散点图在背景图像上进行数据验证

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:30 24 4
gpt4 key购买 nike

我正在尝试用Python在背景图像上绘制数据,以进行数据验证,即看看我从自己的数据生成的曲线与我保存为截图的论文中的曲线有多接近。 .png

我已尝试使用 extent 关键字和 imshow 来编写代码: Adding a background image to a plot with known corner coordinates这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import imread
import matplotlib.cbook as cbook

np.random.seed(0)
x = np.random.uniform(0.0,10.0,15)
y = np.random.uniform(0.0,1.25,15)

datafile = cbook.get_sample_data('C:\\Users\\andrew.hills\\Desktop\\Capture.png')
img = imread(datafile)
plt.scatter(x,y,zorder=1)
plt.imshow(img, zorder=0, extent=[0.0, 10.0, 0.00, 1.25])
plt.show()

我遇到的问题是图形出现扭曲,我认为这是因为每个像素在轴上设置为 1x1,但我的数据范围在 x 方向为 0.0-10.0,在 y 方向为 0.00-1.25:

enter image description here

如何更改此设置以使图像不会出现扭曲?

最佳答案

问题确实是图像通过范围参数获得了新的数据范围,并且默认情况下“相等”的图像长宽比将因此导致图像扭曲。

您需要做的是计算考虑新数据范围的新纵横比。

new_aspect = #pixels along y /

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
x = np.random.uniform(0.0,10.0,15)
y = np.random.uniform(0.0,1.25,15)
plt.scatter(x,y,zorder=1)

img = plt.imread("house.png")

ext = [0.0, 10.0, 0.00, 1.25]
plt.imshow(img, zorder=0, extent=ext)

aspect=img.shape[0]/float(img.shape[1])*((ext[1]-ext[0])/(ext[3]-ext[2]))
plt.gca().set_aspect(aspect)

plt.show()

enter image description here

关于Python散点图在背景图像上进行数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com