У меня есть данные в столбцах, выделенных зеленым цветом, и мне нужно использовать Python для доступа к столбцам, выделенным желтым цветом и графиками. Я знаю, как строить данные на python, используя matplotlib или обнаруживать наклон и R2, используя scipy, когда мне нужно найти склоны и R2 для всего столбца. Однако, как видно из прилагаемого изображения, мне нужны четыре разных склона и четыре разных R2 и четыре разных графика для четырех разных стран.
Данные выделены зеленым цветом. Решение находится в желтой подсветке и показаны четыре графика. Я попытался заглянуть во многие форумы онлайн, но мне трудно найти решение этого. Спасибо за прочтение.
PS: Я использовал случайные данные по оси x и оси y.
Редактировать:
Код, который я использовал для расчета наклона:
import numpy, scipy,pandas as pd, matplotlib
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
from scipy.stats import linregress
import scipy.stats
import copy
df=pd.read_excel("I:/Python/Excel.xlsx")
df.head();
xyDataPairs = df[['x-axis', 'y-axis']].values.tolist();
slope = linregress(x, y)[0]; # slope in units of y / x
print('best slope=', slope)
Это должно сделать трюк
df.groupby('Country', as_index=True)['x-axis','y-axis'].apply(linregress)
РЕДАКТИРОВАТЬ
Чтобы seaborn
данные по категориям в подзаговорах, у seaborn
есть интуитивный синтаксис.
import seaborn as sn
sns.set(style="ticks", color_codes=True)
sns.catplot(x="x-axis", y="y-axis",
col="Country", aspect=.6,
data=df);
plt.show()
res=df.groupby('Country', as_index=True)['x-axis','y-axis'].apply(linregress); print(res)