Как мне отследить точное или найти конкретное значение c в графе matplotlib? - PullRequest
0 голосов
/ 07 января 2020

Приведенный ниже код отображает график 2-й оси. Как я могу найти конкретную c точку на графике? В частности, значение х, когда у = -0,99. Извиняюсь за простой вопрос, так как я новичок в этом и не уверен, как конкретно узнать об этом.

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import plotly.express as px
import plotly.graph_objects as go
import math

t = np.arange(0,20e-09,1e-12) #runtime
mu0 = math.pi*4e-7 #Vacuum permeability N/A2)
Ms = 1257e3 #Saturation Magnetization (A/m)
alpha = 0.01 #Damping constant
K_U = 2.245e5 #Anisotropic constant(J/m3)
K_I = 1.286e-03 #Interfacial Anisotropic (J/m2)
gr = 1.76e11 #gyromagnetic ratio(rad/(s.T))
h = 1.054e-34 #reducedplancksconstant(J.s)
e_charge = 1.602e-19 #charge

L_FL  = 50e-09 #length of nanomagnet
W_FL  = 150e-09 #width of nanomagnet
T_FL  = 1.7e-09 #thickness of nanomagnet
Nxx   = 0.01312 #demagtensor xx-component
Nyy   = 0.05695 #demagtensor yy-component
Nzz   = 0.9288 #demagtensor zz-component
T_MGO = 2e-9 #thicknessofMgOLayer
E_c   = 50e-15 #VCMA coefficient
Vol   = 0 #inputvoltage
J_MTJ = 1e11


def cross(a,b):
    product = np.array([a[1]*b[2] - a[2]*b[1], a[2]*b[0] - a[0]*b[2], a[0]*b[1] - a[1]*b[0]])
    return product

Hdemag = -Ms*np.array([Nxx, Nyy, Nzz]) #Demagnetizing field
E_field = Vol/T_MGO
Keff = K_U+(K_I-(E_c*E_field))/T_FL
anis_z = 2*Keff/(mu0*Ms)
Hanis = np.array([0.0, 0.0, anis_z]) #Anisotropic field
ha = 0
theta1 = 0
hext = ha*np.array([math.cos(180*theta1/math.pi), 0, math.sin(180*theta1/math.pi)]) #External magnetic field
heff = (Hanis+Hdemag)
beta  = (h*gr*J_MTJ)/(2*e_charge*T_FL*Ms)


def model(m,t):
    Heff = np.array([heff[0]*m[0], heff[1]*m[1], heff[2]*m[2]]) + hext
    P = 0.56
    m_p = np.array([0,0,-1])
    lambda_1 = 1
    epsilon_1 = 0.1
    epsilon = (P*lambda_1)/(((lambda_1*lambda_1)+1)+(((lambda_1*lambda_1)-1)*(np.dot(m,m_p))))
    dmdt = -(mu0/(1+alpha**2)) * (gr*cross(m,Heff) + gr*alpha*cross(m,cross(m,Heff))) - beta*cross(m, (epsilon*(cross(m,m_p)))-epsilon_1*m_p)
    return dmdt

theta2 = 10 
m0 = np.array([math.cos(180*theta2/math.pi), 0, math.sin(180*theta2/math.pi)])
m = odeint(model, m0, t)

plt.plot(t, m[:,2])
plt.show()

Приведенный ниже код изображает график 2d оси. Как я могу найти конкретную c точку на графике? В частности, значение х, когда у = -0,99. Извиняюсь за простой вопрос, так как я новичок в этом и не уверен, как конкретно узнать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...