python - 移动曲线的底部而不改变两端

标签 python numpy

我的曲线如下:

enter image description here

曲线是使用以下代码生成的:

import matplotlib.pyplot as plt
import numpy as np

# normalize array
def min_max_scale_array(arr):
    arr = np.array(arr)
    return (arr - arr.min())/(arr.max()-arr.min())

x = np.linspace(-50,48,100)
y = x**2 + 2*x + 2  

x = min_max_scale_array(x)
y = min_max_scale_array(y)

fig, ax = plt.subplots()
ax.plot(x, y)

如何通过仅移动左下角(或右下角)并保持两端相同来生成新曲线?谢谢!

enter image description here

编辑:任何曲线生成算法都值得赞赏,只要它有效!

最佳答案

一种方法是像以前一样定义x,y,但应用移位。虚线显示您是否只是移动它。但现在在最顶部的 y 我们不想移动它,所以我们想将底部移动的版本 (y=0) 加权 1 但在顶部 (y=1) 为 0,这样我们就可以得到渐进插值。我们可以通过将位移乘以(1-y)来做到这一点:

enter image description here

a = 0.25  # how far to shift left
plt.plot(x, y, 'k')
plt.plot(x-a, y, 'k:')
plt.plot(x-a*(1-y), y, 'r')
plt.show()

关于python - 移动曲线的底部而不改变两端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72350079/

相关文章:

python - 如何使用取模运算符在两个常量之间绑定(bind)一个数字?

python - 在 'date' 上合并 pandas 中的数据帧仅合并 header

python - 使用 zip 或数组对列表进行操作

python - 如何制作 2D 和 3D 矩阵的点积(分别对每个维度进行计算)

python - 我如何计算零空间/内核 (x : M·x = 0) of a sparse matrix in Python?

python - 如何访问 Scrapy CrawlSpider 中的特定 start_url?

python - 为 Django URL Dispatcher 编写的测试不起作用

python - 通过 flowables 将现有 PDF 合并到新的 ReportLab PDF

python - 如何使 numpy 数组的列表都具有相同的形状?

python - 在 Numpy 数组中每行保留最大 N 个值