Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menentukan Persimpangan y-Axis Tepat Titik Data dalam Python?

Bagaimana untuk Menentukan Persimpangan y-Axis Tepat Titik Data dalam Python?

Patricia Arquette
Lepaskan: 2024-10-21 07:15:02
asal
1039 orang telah melayarinya

How to Determine the Exact y-Axis Intersection of Data Points in Python?

Mencari Persilangan Tepat Titik Data dengan Paksi-y

Apabila memplot data dalam Python, adalah berguna untuk mendapatkan nilai tepat di mana lengkung bersilang dengan paksi-y. Nilai ini boleh ditentukan menggunakan kaedah berangka, khususnya melalui interpolasi linear.

Penyelesaian Menggunakan Interpolasi Linear

Kod berikut menunjukkan cara mencari persilangan sifar tatasusunan data menggunakan interpolasi linear:

<code class="python">import numpy as np

# Generate sample data
N = 750
x = .4 + np.sort(np.random.rand(N)) * 3.5
y = (x - 4) * np.cos(x * 9.) * np.cos(x * 6 + 0.05) + 0.1

# Define function to find roots (zero crossings)
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)

# Find zero crossings
z = find_roots(x, y)

# Plot data and zero crossings
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4)
plt.show()</code>
Salin selepas log masuk

Plot Songsang untuk Pintasan pada Nilai-y Bukan Sifar

Kaedah di atas boleh diubah suai untuk mencari pintasan pada nilai-y bukan sifar (y0) dengan mencari sifar bagi y - y0:

<code class="python">y0 = 1.4
z = find_roots(x, y - y0)
plt.plot(z, np.zeros(len(z)) + y0)</code>
Salin selepas log masuk

Persilangan Antara Dua Lengkung

Sama seperti kaedah pertama, mencari titik persilangan antara dua lengkung melibatkan mencari sifar bagi perbezaan antara dua tatasusunan data:

<code class="python"># Generate sample data
x = .4 + np.sort(np.random.rand(N)) * 3.5
y1 = (x - 4) * np.cos(x * 9.) * np.cos(x * 6 + 0.05) + 0.1
y2 = (x - 2) * np.cos(x * 8.) * np.cos(x * 5 + 0.03) + 0.3

# Find intersection points
z = find_roots(x, y2 - y1)

# Plot data and intersection points
plt.plot(x, y1)
plt.plot(x, y2, color="C2")
plt.plot(z, np.interp(z, x, y1), marker="o", ls="", ms=4, color="C1")</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Persimpangan y-Axis Tepat Titik Data dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan