gpt4 book ai didi

algorithm - 如何转换两组离散点(向量)以帮助以共同的比例绘制它们

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:24:58 27 4
gpt4 key购买 nike

我有两组离散点

G1: (x,y1), 其中 y1 在整数范围 [1..90] ( say )

G2:(x, y2),其中y2在整数范围[1..110]内

这些点集的长度不同,但我想在一个共同的尺度上比较它们的图。

也就是说,我需要在具有通用比例(比如说 [1..100] )的单个图形中显示这些图形。

我想知道如何才能做到这一点。我必须如何转换这些向量才能以通用比例绘制它?

附言我想具体说明问题。

因此,让我们考虑两个列表:len(d1) = 110,他包含一些值。长度 (d2) = 80。我想在一张图片中构建这些图形(使用 matplotlib)。len(x) = 110 - 范围从 0 到 110

fig, ax = plt.subplots()
ax.plot(x, d1, 'k-')
ax.plot(x, d2, 'c--')

因此,如果我只是将列表 d2 的元素与某个系数相乘,我只会得到 80 个元素,并且不能将其用于绘图。我还必须填补缺失值,但我不知道该怎么做。

最佳答案

我觉得你需要 upsample / interpolate具有较少样本的向量以获得更多样本和downsample / decimate这具有更高样本的向量以获得更少的样本(本质上匹配两个向量的采样率)。

我用了scipy.signal.resample进行上/下采样。<​​/p>

我尝试使用样本量不相等的两个随机向量来模拟您的情况。

看看这是否对您有帮助:

import numpy as np
from scipy import signal
# scipy.signal module contains a interpolator / decimator
import matplotlib.pyplot as plt

# Creating random vectors for a and b

vector_a = np.sin(2*3.14*100*np.arange(130))
# Sine signal with 100Hz freq and 130 time samples

vector_b = np.cos(2*3.14*100*np.arange(80))
# Cosine signal with 100Hz freq and 80 time samples

# To avoid bias towards any one vector length take the
# mean of the two sample lengths as the common sample length

common_no_of_samples = (vector_a.shape[0] + vector_b.shape[0]) // 2
# 105 Samples

# Upsample vector_a to have common_no_of_samples
vector_a = signal.resample(vector_a, common_no_of_samples)
# Downsample vector_b to have common_no_of_samples
vector_b = signal.resample(vector_b, common_no_of_samples)

fig, ax = plt.subplots()
ax.plot(np.arange(common_no_of_samples), vector_a, 'k-')
ax.plot(np.arange(common_no_of_samples), vector_b, 'c--')

# Where np.arange(common_no_of_samples) refers to the common time axis
# vector_a and vector_b are the resampled vectors.

enter image description here

如果你想在enter image description here中作为积分你可以这样做:

time_axis = np.arange(common_no_of_samples)
vector_a = np.dstack((vector_a, time_axis))

这将生成以下形式的点:

array([[[  2.23656191e-02,   0.00000000e+00],
[ -3.96584073e-01, 1.00000000e+00],
[ -7.01262520e-01, 2.00000000e+00],
[ -9.31867589e-01, 3.00000000e+00],
[ -9.95165113e-01, 4.00000000e+00],
[ -9.24625413e-01, 5.00000000e+00],
[ -6.96587056e-01, 6.00000000e+00],
[ -3.74795767e-01, 7.00000000e+00],
[ 1.59956385e-02, 8.00000000e+00],
[ 3.94192306e-01, 9.00000000e+00],
[ 7.20969109e-01, 1.00000000e+01],
[ 9.28803144e-01, 1.10000000e+01],
[ 1.00160878e+00, 1.20000000e+01],
[ 9.13659002e-01, 1.30000000e+01],
[ 6.91934367e-01, 1.40000000e+01],
[ 3.57910455e-01, 1.50000000e+01],

关于algorithm - 如何转换两组离散点(向量)以帮助以共同的比例绘制它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079704/

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