Как анализировать данные и добавлять в сюжет в matplotlib - PullRequest
1 голос
/ 25 февраля 2020

Я построил кривую, и мне нужно сделать с ней еще 3 вещи.

(код показан ниже):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn-bright')
print(plt.style.available)
print("NumPy version:", np.__version__)
print("Pandas version:", pd.__version__)
S_S = pd.read_excel("SSCurve.xls")
print(S_S.head())
Stress_Al = S_S['STRESS']
Strain_Al = S_S['STRAIN']
plt.scatter(Strain_Al, Stress_Al)
plt.plot(Strain_Al, Stress_Al)
plt.xlabel('Strain')
plt.ylabel('Stress (MPa)')
plt.title('Engineering Stress Vs Engineering Strain')
plt.tight_layout()
plt.show()
  1. Мне нужно знать, как получить значение y, соответствующее его значению x.
  2. Мне нужно нарисовать линию из определенной точки на оси x, которая пересекает кривую в определенной точке (что-то выглядит так): Pi c

  3. Также, если возможно, я могу найти наклон двух линий (обратите внимание, что я вызываю данные из файла xls)

дата здесь:

enter image description here

Спасибо, спасибо за вашу помощь.

1 Ответ

0 голосов
/ 25 февраля 2020

Чтобы найти наклон кривой, вы можете использовать numpy .polyfit ()

Если вы хотите, чтобы линия соответствовала первой части вашего графика напряжения / деформации, я предлагаю вам нужно сделать что-то вроде этого:

z = np.polyfit(S_S['Strain'][0:5], S_S['Stress'][0:5], 1)

Если вы хотите построить эту линию, вы можете сделать следующее

x= Strain_Al plt.plot(z[0]*x+z[1],'--')

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn-bright')
print(plt.style.available)
print("NumPy version:", np.__version__)
print("Pandas version:", pd.__version__)
S_S = pd.read_excel("SSCurve.xls")
print(S_S.head())
Stress_Al = S_S['STRESS']
Strain_Al = S_S['STRAIN']
z = np.polyfit(S_S['Strain'][0:5], S_S['Stress'][0:5], 1)
z[1] = -1
plt.scatter(Strain_Al, Stress_Al)
plt.plot(Strain_Al, Stress_Al)
plt.xlabel('Strain')
plt.ylabel('Stress (MPa)')
plt.title('Engineering Stress Vs Engineering Strain')
plt.ylim(0,7)
x= Strain_Al
plt.plot(z[0]*x+z[1],'--')
plt.tight_layout()
plt.show()

Stress/strain

Пожалуйста, go по этой ссылке для полной Jupyter Notebook

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