2024-04-05|閱讀時間 ‧ 約 23 分鐘

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

首先這是我們的資料:

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 學生宿舍床位數")



分享至
成為作者繼續創作的動力吧!
記錄我在用Python處理資料處理工作遇到問題時的處理筆記,希望提供給也在用Python做資料處理的新手,若有相關問題時,能快速知道能如何處理,雖然不專業,但是希望有幫助。
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言