python-3.x - interpolate.interp1d 线性图与函数的新输入不一致
问题描述
我使用 scipy.interpolate.interp1d 在两个具有浮点值的数组之间进行线性插值。然后,我用 matplotlib 绘制了插值函数。但是,我注意到一些新值(最初不包含在表示 x 和 y 数据的数组中)在插入插值函数时会产生与绘图所暗示的不同的结果。
我实际上是在尝试找到平行于 x 轴的几条线与插值函数的线性曲线之间的交点。通过在线研究,我看到很多人为此目的使用 scipy 的 interpolate.interp1d。
这是代码:
from scipy import interpolate
import matplotlib.pyplot as plt
# Data
size = [12, 9, 6.5, 4.8, 2, 0.85, 0.45, 0.15, 0.07]
poW = [100, 99, 98, 97, 94, 80, 50, 6, 1]
# Approximate function f: size = f(poW)
f = interpolate.interp1d(poW, size, kind="linear")
# Here I create the plot
plt.axes(xscale='log') # scale x-axis
plt.plot(size, poW, "bs", # add data points with blue squares
f(poW), poW, "b") # add a blue trendline
# Draw D_10 as an additional point
plt.plot(f(10), 10, "rx", markersize=15)
# Draw D_30 as an additional point
plt.plot(f(30), 30, "rx", markersize=15)
# Draw D_60 as an additional point
plt.plot(f(60), 60, "rx", markersize=15)
plt.show()
我在之前的最后 3 行中绘制的附加点plt.show()
不对应于插值函数本身的绘图所指示的相同位置。这对我来说很有趣,我似乎无法在这里找到问题。我对 matplotlib 和 scipy 还很陌生,所以我确信我一定遗漏了一些东西。任何帮助或指出正确的方向将不胜感激!
解决方案
推荐阅读
- javascript - 从节点 JavaScript 返回到 jQuery 的 Ajax 调用落在错误函数上
- c++ - c++11中如何检查类成员指针是类还是结构类型?
- java - java - 如何在按钮上获得鼠标按下事件
- angular - a2e datetimepicker - Datetimepicker 不会显示在输入焦点和单击图标上
- oracle - 如何读取csv数据并插入数据库
- python - Scapy - 从 pcap 中删除 Dot1q (801.2 Q)
- sql - 在打字稿中,如何像 MSSQL 的“order by”子句一样对 * 、 + - 等特殊字符进行排序
- powershell - 在 powershell 中为 ask-CLI 命令动态输入
- python - K-Means 在第一列是用户名(字符串)和第二列是 ID(整数)的数据集上进行 ID 聚类
- schema - 如何使用 dateModified 微数据