日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python已知y求x_当使用python知道X坐标值未知时,如何根据Y坐标获取Path的X坐标

發(fā)布時(shí)間:2023/12/29 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python已知y求x_当使用python知道X坐标值未知时,如何根据Y坐标获取Path的X坐标 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng)我只有一個(gè)已知的Y坐標(biāo)方程,即P = a * b(其中a& b定義的值為0.8,150)和x坐標(biāo)完全未知時(shí),如何在曲線繪圖上得到一個(gè)點(diǎn)沒有連接x和y的方程(例如:y = mx b; #i沒有這種方程).因此,現(xiàn)在目標(biāo)是,如果我將’Y坐標(biāo)’值設(shè)置為120并且需要通過從未知’x-coordiante’值獲取距離或路徑來繪制曲線上的點(diǎn).

我嘗試了如下代碼

import matplotlib.pyplot as plt

import numpy as np

from scipy.interpolate import InterpolatedUnivariateSpline

# given values

y = np.array([0, 38.39, 71.41, 99.66, 123.67, 143.88, 160.61, 174.03, 184.16, 190.8, 193.52])

x = np.array([0, 0.37, 0.74, 1.11, 1.48, 1.85, 2.22, 2.59, 2.96, 3.33, 3.7])

x_val = np.linspace(0,7) #limts on x-axis

a = 0.8

b = 150

y_val = np.multiply(a, b)

yinterp = np.interp(x_val, x, y)

plt.plot(x, y, '-')

plt.plot(x_val, yinterp, 'o')

#here i need to plot a exact point w.r.t to y_val

#and also need to show the distance with a line from the selected x and y coordinates

plt.plot(x_val,y_val, '--')

plt.show()

解決方法:

你想要的是找到數(shù)組的根(s)或零(s).這個(gè)問題的答案顯示了如何做到這一點(diǎn):How to get values from a graph?

將解決方案應(yīng)用于此案例如下:

import matplotlib.pyplot as plt

import numpy as np

# given values

y = np.array([0, 38.39, 71.41, 99.66, 123.67, 143.88, 160.61, 174.03, 184.16, 190.8, 193.52])

x = np.array([0, 0.37, 0.74, 1.11, 1.48, 1.85, 2.22, 2.59, 2.96, 3.33, 3.7])

x_val = np.linspace(0,7)

plt.plot(x, y, '-')

def find_roots(x,y):

s = np.abs(np.diff(np.sign(y))).astype(bool)

return x[:-1][s] + np.diff(x)[s]/(np.abs(y[1:][s]/y[:-1][s])+1)

a = 0.8

b = 150

y_val = np.multiply(a, b)

roots = find_roots(x, y-y_val)

plt.plot(roots[0],y_val, marker="o")

plt.plot([roots[0],roots[0],0],[0,y_val,y_val], "--")

plt.xlim(0,None)

plt.ylim(0,None)

plt.show()

如果數(shù)組單調(diào)遞增,您當(dāng)然也可以簡單地插值:

import matplotlib.pyplot as plt

import numpy as np

# given values

y = np.array([0, 38.39, 71.41, 99.66, 123.67, 143.88, 160.61, 174.03, 184.16, 190.8, 193.52])

x = np.array([0, 0.37, 0.74, 1.11, 1.48, 1.85, 2.22, 2.59, 2.96, 3.33, 3.7])

x_val = np.linspace(0,7)

plt.plot(x, y, '-')

a = 0.8

b = 150

y_val = np.multiply(a, b)

root = np.interp(y_val,y,x)

plt.plot(root,y_val, marker="o")

plt.plot([root,root,0],[0,y_val,y_val], "--")

plt.xlim(0,None)

plt.ylim(0,None)

plt.show()

標(biāo)簽:python,numpy,scipy,matplotlib

總結(jié)

以上是生活随笔為你收集整理的python已知y求x_当使用python知道X坐标值未知时,如何根据Y坐标获取Path的X坐标的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。