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

更新 發佈閱讀 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



留言
avatar-img
留言分享你的想法!
avatar-img
果農的沙龍
7會員
61內容數
我是果農,這裡有我的人資職涯經驗分享,與我菜鳥般的Python資料分析筆記,還有一些讀書心得,希望對大家有幫助。
果農的沙龍的其他內容
2024/08/30
如何用Python做可調整是否能重複抽獎的程式
Thumbnail
2024/08/30
如何用Python做可調整是否能重複抽獎的程式
Thumbnail
2024/08/23
如何用Python繪製彩色表格
Thumbnail
2024/08/23
如何用Python繪製彩色表格
Thumbnail
2024/08/23
如何調整成Python的日期格式
Thumbnail
2024/08/23
如何調整成Python的日期格式
Thumbnail
看更多
你可能也想看
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News