現在malplotlibで散布図と、その回帰直線を表示させようと試みています。原点を通る直線を表示させたいと考えております。pythonのバージョンは3.7.0で、matplotlibのバージョンは3.5.1です。
プロットに関する部分は以下のようになっています。
x = df.iloc[1:,6].values y = df.iloc[1:,5].values lr = LinearRegression(fit_intercept=False) lr.fit(x.reshape(-1, 1), y) plt.plot(x, lr.predict(x.reshape(-1, 1))) plt.scatter(x, y) plt.grid() plt.show()
xは(0.2, 0.3, 0.3, 0.4, 0.6)、
yは(2.17186, 2.17186, 2.17186, 2.17186, 3.792815)
となっています。
プロットの出力が以下のようになります。
x軸の0.5が省略されてしまい、プロットが曲がってしまいます。
目盛りを指定すれば良いのではと思い、
plt.xticks([0.2, 0.3, 0.4, 0.5, 0.6])
とすると以下のように意図していない部分で目盛りが表示されてしまいました。
また、原点から表示したいと思い、以下のように
plt.xlim(0, 0.6)
とすると、
このようになってしまい、データ点が消えてしまいます。
当方、全くのpython初心者につき、どのように解決すれば良いのかがわからず、2日ほど経ってしまいました…。皆様のアドバイスを頂けますと幸いです。どうか宜しくお願い致します。
2022/04/19, 00:46追記
_meg様のご回答を参考にさせて頂き、
plt.plot([0,x[-1]], [0,lr.predict(x.reshape(-1, 1))[-1]])
としたのですが、
なぜか0.6がこのような位置に現れてしまいました。[0,x[-1]]の部分を[0,x[0]]とすると、x軸は順番に並ぶのですが、直線は0.2の位置で止まったままになってしまいます。こちらについても解決方法をご教授頂けますと幸いです。申し訳ありませんが、どうぞ宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー