簡體   English   中英

如何用線性回歸繪制漂亮的散點圖?

[英]How do I plot a beautiful scatter plot with linear regression?

我想使用下面給出的數據制作帶有linear regression的漂亮scatter plot 我能夠創建一個散點圖,但對它的外觀不滿意。 此外,我想在數據上繪制一條linear regression

我的數據和代碼如下:

x            y
117.00      111.0
107.00      110.0
77.22        78.0
112.00       95.4
149.00      150.0
121.00      121.0
121.61      120.0
111.54      140.0
73.00        72.0
70.47       000.0
66.3         72.0
113.00      131.0
81.00        81.0
72.00        00.0
74.20        98.0
84.24        90.0
86.60        88.0
99.00        97.0
90.00       102.0
85.00       000.0
138.0       135.0
96.00        93.0

import numpy as np
import matplotlib.pyplot as plt
print(plt.style.available)
from sklearn.linear_model import LinearRegression
plt.style.use('ggplot')

data = np.loadtxt('test_data',  dtype=float, skiprows=1,usecols=(0,1))

x=data[:,0]
y=data[:,1]
plt.xlim(20,200)
plt.ylim(20,200)

plt.scatter(x,y, marker="o",)
plt.show()

請檢查代碼段。 您可以使用numpy.polyfit()和 degree=1 來計算線的斜率和 y 截距到y=m*x+c 圖形

import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
data = np.loadtxt('test_data.txt',  dtype=float, skiprows=1,usecols=(0,1))
x=data[:,0]
y=data[:,1]

plt.xlim(20,200)
plt.ylim(20,200)

plt.scatter(x,y, marker="o",)

m, b = np.polyfit(x, y, 1)
plt.plot(x, m*x + b)

plt.show()

Edit1:根據你的評論,我添加了更多的點,現在圖形看起來像這樣,它似乎通過點傳遞。

要將透明度設置為點,您可以使用alpha參數。 您可以設置介於 0 和 1 之間的范圍來更改透明度。 這里我設置alpha=0.5

plt.scatter(x,y, marker="o",alpha=0.5) 透明的 Edit2:基於@tmdavison 建議圖2

import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
data = np.loadtxt('test_data.txt',  dtype=float, skiprows=1,usecols=(0,1))
x=data[:,0]
y=data[:,1]
x2 = np.arange(0, 200)
plt.xlim(20,200)
plt.ylim(20,200)

plt.scatter(x,y, marker="o",)

m, b = np.polyfit(x, y, 1)
plt.plot(x2, m*x2 + b)

plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM