2017-10-24 11 views
0

Pythonのプロットから正確な値を得るには、y軸ですか?私は、2つの配列vertical_datagradient(temperature_data)を持っているとして、私はそれらをプロットした:私はゼロ値を必要とするが、それはそれはフロートだ、正確にゼロではありませんグラフから値を取得する方法は?

plot

:ここに示した

plt.plot(gradient(temperature_data),vertical_data) 
plt.show() 

プロット。

+2

を取得するためにxyの役割を反転することができますか[最小限で完全で検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 – DavidG

+0

私は問題の説明が少し誤解を招くかもしれないと思います。あなたが望むのは、数の少ない配列のゼロを見つけることです。これはmatplotlibとは関係ありません。 (また、複数のゼロがあります)。これは一般的に重要ではありません。しかし、必要な精度に応じて、簡素化することができます。 – ImportanceOfBeingErnest

+0

さて、私はそのプロットされたグラフでそれを見なければならないと思う。 – Deer4

答えて

1

単純な線形補間を使用して、ここでは解決策ですが、私はnumpy配列の根や零点を見つける方法の問題に良い答えを見つけることができませんでした。もちろん

import numpy as np 
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 


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) 

z = find_roots(x,y) 

import matplotlib.pyplot as plt 

plt.plot(x,y) 
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4) 

plt.show() 

enter image description here

あなたは何を試してみました?

plt.plot(y,x) 
plt.plot(np.zeros(len(z)),z, marker="o", ls="", ms=4) 

enter image description here

+0

ねえ、ちょうど、このような指標に関数の符号が変わる場所を回すのはきちんとした考えだと言いたい。ありがとう! – Perfi

関連する問題