如何用Python繪製散布圖與迴歸線

2024/04/05閱讀時間約 3 分鐘

首先這是我們的資料:

import pandas as pd
data = pd.read_csv("opendata.csv")
raw-image

先整理資料,只取用校舍基地大小大於0的資料:

data = data[data["可使用校地-校舍基地(平方公尺)"]!=0]

接著我們開始繪圖:

import matplotlib

#選擇中文字體
matplotlib.rc("font",family="Microsoft YaHei")

from matplotlib import pyplot as plt

#繪製圖的大小
plt.figure(figsize=(6,6))

#繪製一個位於包含1X1個子圖的圖且位置在(0,0)的子圖
ax0 = plt.subplot2grid((1,1,),(0,0),colspan=1,rowspan=1)

#--------------------------------

#建立x軸資料
ax0_x = data["可使用校地-校舍基地(平方公尺)"]/10000

#建立y軸資料
ax0_y = data["學生宿舍床位數(床)"]

#建立稍候要調整顏色時會用到的List
data["顏色"] = list(map(lambda x: "green" if x == "國立大學" else ("blue" if x == "私立大學" else "red"), data["學校類型"]))

#--------------------------------

#開始繪製散布圖
ax0.scatter(x=ax0_x, y=ax0_y, c= data["顏色"], marker="p", alpha=0.7)

#建立坐標軸名稱
ax0.set_xlabel("可使用校地-校舍基地(萬平方公尺)")
ax0.set_ylabel("學生宿舍床位數(床)")

#--------------------------------

import numpy as np

#利用polyfit將係數存在變數p中
p = np.polyfit(ax0_x, ax0_y, 1)

#建立迴歸線的x軸資料(由0~散布圖的x軸資料的最大值並遞增排序)
p_x = range(0,max(ax0_x.sort_values().astype(int)))

#繪製迴歸線
plt.plot(p_x,np.polyval(p,p_x),color="darkgray",linestyle="--",alpha=0.5)

#--------------------------------

#建立標題
plt.title("可使用校地 X 學生宿舍床位數")
raw-image



1會員
20內容數
我是果農,這裡有我的人資職涯經驗分享,與我菜鳥般的Python資料分析筆記,還有一些讀書心得,希望對大家有幫助。
留言0
查看全部
發表第一個留言支持創作者!