如何用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
果農的沙龍
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
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
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