前提・実現したいこと
以下のコードにて、作成された回帰直線の回帰式、相関係数r、決定係数R2をグラフ上にプロットしたいです。場所、形は問いませんが、できれば式は回帰直線の付近、rとR2は左上に凡例の形で、が好ましいでしょうか。
以下を参照してみましたが理解できず、ここまで作成した自分のコードにも当てはめることができませんでした。
https://stackoverflow.com/questions/45902739/seaborn-annotate-the-linear-regression-equation
発生している問題・エラーメッセージ
該当のソースコード
python
1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4from adjustText import adjust_text 5import seaborn as sns 6pd.options.display.float_format="{:.1f}".format 7#Create a random data frame 8start,end = "2021/4/1","2021/4/30" 9dates = pd.date_range(start=start,end=end,freq="D") 10players = [f"Player{i}"for i in range(1,6)] 11N = 200 12dates = np.random.choice(dates,size=N) 13dates.sort() 14players=np.random.choice(players,size=N) 15df = pd.DataFrame({ 16 "Date": dates, 17 "Player": players, 18 "Speed": np.random.sample(N) * 100.0, 19 "Angle": np.random.sample(N) * 40.0 - 20.0, 20 "Efficiency": np.random.sample(N) * 100.0, 21}) 22#grouping 23dfx = df.groupby("Player").agg({ 24 "Player":"count", 25 "Speed":[np.mean,np.std], 26 "Angle":[np.mean,np.std], 27 "Efficiency":[np.mean], 28}) 29#add average 30dfx.loc['Average', :] = dfx.mean() 31#Join columns 32dfx.columns = [" ".join(pair) for pair in dfx.columns] 33# Create figure 34fig,ax = plt.subplots(figsize=(15,10)) 35dfx[:-1].plot.scatter(x=("Speed mean"),y=("Angle mean"),ax=ax) 36#Tag playerlabel and adjust 37x = ("Speed mean") 38y = ("Angle mean") 39dfx[:-1].plot.scatter(x=x, y=y, ax=ax,s=100) 40texts=[] 41for i, label in enumerate(dfx[:-1].index): 42 texts.append(ax.annotate( 43 label, ha="center", fontsize=12, 44 xy=(dfx[:-1][x][i], dfx[:-1][y][i]), 45 xytext=(dfx[:-1][x][i], dfx[:-1][y][i]))) 46adjust_text(texts, arrowprops=dict(arrowstyle='->', color='red')) 47#Linear Regression 48dfy = dfx[:-1].copy() 49sns.regplot(x="Speed mean", y="Angle mean", data=dfy, ax=ax) 50#setting 51ax.set_xlabel("Speed") 52ax.set_ylabel("Angle") 53ax.set_xlim(0,100) 54ax.set_ylim(-20,20) 55ax.grid()
試したこと
補足情報(FW/ツールのバージョンなど)
windows11,python3.9.4,vscode
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。