如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點

更新於 發佈於 閱讀時間約 4 分鐘

首先這是我們的資料

import pandas as pd
data = pd.read_csv("太陽光電業務資訊.csv")
raw-image

再來我們修改與建立幾個會用到的欄位

data["總裝置容量kwp(萬)"] = (data["總裝置容量kwp"]/10000).round()
data["平均每件容量kwp(萬)"] = data["總裝置容量kwp(萬)"]/data["總件數"]

修改後的資料如下

raw-image

但因為資料的最後有一筆總計資料如下圖

raw-image


我們想把總計拿掉,不要出現在圖表中,所以先如下操作

#篩選出總計那一行,並取得總計的索引值
n = data["行政區別"][data["行政區別"].values == "總計"].index.astype(int)[0]
#將總計那一行拿掉
data.drop([n],inplace=True)

接著,我們就可以開始繪圖了:

import matplotlib

#設定中文字型
matplotlib.rc("font",family="Microsoft YaHei")

from matplotlib import pyplot as plt

#設定圖的大小
plt.figure(figsize=(8,8),facecolor="lightgray")

#設定子圖位置
ax0 = plt.subplot2grid((1,1),(0,0),colspan=1,rowspan=1)

#設定x、y變數
ax0_x = data["總裝置容量kwp(萬)"]
ax0_y = data["總件數"]

#建立隨著決定點的大小變化的函數
ax0_z = data["平均每件容量kwp(萬)"]/(data["平均每件容量kwp(萬)"].max())

#繪製散布圖
ax0.scatter(ax0_x,ax0_y,marker="o",s=ax0_z*500,alpha=0.5,color="orange",label="平均每件容量kwp(萬)")

#設定x、y座標軸名稱
ax0.set_xlabel("總裝置容量kwp(萬)")
ax0.set_ylabel("總件數")

#將【總裝置容量】、【總件數】最大值的兩個點,用箭頭標註出行政區別
for i in ["總裝置容量kwp(萬)","總件數"]:
    #篩選最大值的該筆資料並重設索引
    filter = (data[i]==data[i].max())
    data_arrow = data[filter].reset_index()
    #建立箭頭的座標與所屬行政區別的變數
    data_arrow_x =data_arrow["總裝置容量kwp(萬)"][0]
    data_arrow_y =data_arrow["總件數"][0]
    data_arrow_text = data_arrow["行政區別"][0]
    #箭頭設定函數
    ax0.annotate(
        #設定顯示文字
        text=data_arrow_text,
        #設定箭頭的頭的座標
        xy=(data_arrow_x,data_arrow_y),
        #設定顯示文字的座標
        xytext=(data_arrow_x-15,data_arrow_y),
        #設定箭頭相關屬性
        arrowprops=dict(
            arrowstyle = "->",
            color = "darkblue",
            )
        )
#設定圖例
ax0.legend()

#設定子圖標題
ax0.set_title("台南太陽光電業務資訊")

plt.tight_layout()
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
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News