【數據可視化-82】中國城市幸福指數可視化分析:Python + PyEcharts 打造炫酷城市幸福指數可視化大屏

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個性化解決方案等服務,如有需要請站內私信或者聯系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉絲群介紹:① 群內初中生、高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。

在這里插入圖片描述

【數據可視化-82】中國城市幸福指數可視化分析:Python + PyEcharts 打造炫酷城市幸福指數可視化大屏

    • 一、引言
    • 二、數據準備與預處理
    • 三、多維度可視化分析
      • 3.1 各區域幸福指數占比玫瑰圖
      • 3.2 各區域教育滿意度與幸福指數關系
      • 3.3 人均可支配收入區間與平均幸福指數
      • 3.4 省份平均幸福指數地圖
      • 3.5 創建城市平均幸福指數
      • 3.6 區域平均幸福指數地圖(增強版)
      • 3.7不同區域多維表現雷達圖
      • 3.8 幸福指數相關因素熱力圖
    • 四、構建可視化大屏
    • 五、分析與結論
    • 六、總結

一、引言

??在當今社會,城市的幸福指數不僅是居民生活質量的重要體現,也是衡量城市競爭力的關鍵指標。本文將通過 Python 和 Pyecharts 對中國城市幸福指數及其影響因素進行深度可視化分析。我們將從多個維度出發,結合多種炫酷的圖表,展示數據背后的深刻洞察,并最終生成一個可移動的可視化大屏,為數據分析和決策提供有力支持。

二、數據準備與預處理

??首先,我們需要加載數據,在進行可視化之前,需要對數據進行清洗,去除異常值和缺失值。:

import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType# 讀取數據
df = pd.read_csv("updated_city_happiness.csv")# 清理數據
df = df[~df['省份'].str.contains('ce1')]  # 刪除異常行
numeric_cols = df.columns[4:-1]  # 從第5列開始是數值列
df[numeric_cols] = df[numeric_cols].apply(pd.to_numeric, errors='coerce')
df = df.drop(['status'], axis=1)

三、多維度可視化分析

3.1 各區域幸福指數占比玫瑰圖

# 計算各區域幸福指數占比
region_happiness_percentage = df.groupby('區域')['幸福指數'].mean().reset_index()
region_happiness_percentage.columns = ['區域', '平均幸福指數']# 創建玫瑰圖
pie = (Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="400px")).add("", [list(z) for z in zip(region_happiness_percentage['區域'], region_happiness_percentage['平均幸福指數'])]).set_global_opts(title_opts=opts.TitleOpts(title="各區域幸福指數占比玫瑰圖", pos_left="center"),legend_opts=opts.LegendOpts(orient="vertical", pos_left="left"),tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
)

3.2 各區域教育滿意度與幸福指數關系

# 計算各區域教育滿意度與幸福指數的關系
region_education_happiness = df.groupby('區域')[['教育滿意度(10分制)', '幸福指數']].mean().reset_index()# 創建柱狀圖
bar = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="400px")).add_xaxis(region_education_happiness['區域'].tolist()).add_yaxis("教育滿意度(10分制)", region_education_happiness['教育滿意度(10分制)'].tolist(), yaxis_index=0, color="#67E0E3").add_yaxis("幸福指數", region_education_happiness['幸福指數'].tolist(), yaxis_index=1, color="#FFD700") 
)

3.3 人均可支配收入區間與平均幸福指數

# 將人均可支配收入分組
bins = [0, 2, 4, 6, 8, 10]
labels = ['0-2萬', '2-4萬', '4-6萬', '6-8萬', '8-10萬']
df['收入區間'] = pd.cut(df['人均可支配收入(萬元)'], bins=bins, labels=labels, right=False)# 計算每個收入區間的平均幸福指數
grouped_data = df.groupby('收入區間')['幸福指數'].mean().reset_index()# 創建柱狀圖
bar1 = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="400px")).add_xaxis(grouped_data['收入區間'].tolist()).add_yaxis("平均幸福指數", grouped_data['幸福指數'].round(2).tolist(), color="#FF6B6B")
)

3.4 省份平均幸福指數地圖

# 計算各省份的平均幸福指數
province_happiness = df.groupby('省份')['幸福指數'].mean().reset_index()
province_happiness.columns = ['省份', '平均幸福指數']# 創建地圖
province_map = (Map(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="600px")).add("平均幸福指數", [list(z) for z in zip(province_happiness['省份'], province_happiness['平均幸福指數'])], "china")
)

3.5 創建城市平均幸福指數

geo = (Geo(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_schema(maptype="china").add("平均幸福指數",[(row['城市'], row['幸福指數']) for index, row in df.iterrows()],# type_=GeoType.HEATMAP,)
)
geo.render("城市平均幸福指數地圖.html")

3.6 區域平均幸福指數地圖(增強版)

# 模擬區域數據
region_happiness = pd.DataFrame({"區域": ["東北", "華東", "華中", "華北", "華南", "西北", "西南"],"平均幸福指數": [80.87, 82.35, 78.60, 74.69, 89.81, 76.89, 87.32]
})# 區域與省份映射
region_to_provinces = {"東北": ["遼寧省", "吉林省", "黑龍江省"],# ... 其他區域映射
}# 準備地圖數據
map_data = []
for _, row in region_happiness.iterrows():region = row["區域"]happiness = row["平均幸福指數"]for province in region_to_provinces[region]:map_data.append([province, happiness])# 創建地圖
region_map_chart = (Map(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="600px")).add(series_name="平均幸福指數",data_pair=map_data,maptype="china",is_map_symbol_show=False)
)

3.7不同區域多維表現雷達圖

# 計算各區域多維指標均值
dimensions = ['人均可支配收入(萬元)', '房價收入比', '教育滿意度(10分制)', '醫療資源指數', 'PM2.5年均值', '公園綠地面積(㎡/人)', '養老保險覆蓋率(%)', '每萬人警力數', '通勤時間(分鐘)'
]
region_data = df.groupby('區域')[dimensions].mean().reset_index()# 準備雷達圖數據
radar_data = [{"value": [round(x, 1) for x in region_data.iloc[i][1:].values.tolist()],"name": region_data.iloc[i]["區域"]} for i in range(len(region_data))
]# 創建雷達圖
radar = (Radar(init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_schema(schema=[opts.RadarIndicatorItem(name=str('人均可支配收入(萬元)'), max_=5,min_=1),...],splitarea_opt=opts.SplitAreaOpts(is_show=False, areastyle_opts=opts.AreaStyleOpts(opacity=1)))
)

3.8 幸福指數相關因素熱力圖

# 計算相關系數矩陣
corr_matrix = df[['幸福指數', '人均可支配收入(萬元)', '教育滿意度(10分制)', '醫療資源指數', '公園綠地面積(㎡/人)', 'PM2.5年均值']].corr()# 準備熱力圖數據
columns = corr_matrix.index.tolist()
heatmap_data = [[i, j, round(corr_matrix.iloc[i, j], 2)] for i in range(len(columns)) for j in range(len(columns))]# 創建熱力圖
heatmap = (HeatMap(init_opts=opts.InitOpts(theme=ThemeType.DARK, width="100%", height="500px")).add_xaxis(columns).add_yaxis("相關性系數",columns,heatmap_data,label_opts=opts.LabelOpts(color="#fff"),)
)

四、構建可視化大屏

from pyecharts.charts import Page# 創建頁面
page = Page(layout=Page.DraggablePageLayout, page_title="中國城市幸福指數可視化大屏")# 添加所有圖表
page.add(pie,bar,bar1,province_map,geo,region_map_chart,radar,heatmap
)# 保存為HTML文件
page.render("中國城市幸福指數可視化大屏.html")

五、分析與結論

??通過以上多維度可視化分析,我們可以得出以下結論:

區域差異顯著: 華南地區幸福指數最高,可能與經濟發展水平、氣候條件等因素相關。

經濟與幸福指數: 人均可支配收入在4-6萬區間時,幸福指數達到峰值,說明收入與幸福感并非線性關系。

多維表現: 各區域在醫療、教育、環境等維度表現各異,雷達圖清晰展示了區域發展的不平衡性。

關鍵影響因素: 熱力圖顯示,PM2.5年均值與幸福指數呈強負相關,說明環境質量對幸福感有重要影響。

六、總結

??本文通過PyEcharts構建了一個炫酷的交互式可視化大屏,從多個角度分析了中國城市的幸福指數。這種可視化方式不僅直觀展示了數據特征,還通過交互功能增強了用戶體驗。對于數據分析和可視化從業者來說,這種多圖表組合的大屏展示方式值得借鑒。

??最終生成的可視化大屏文件"中國城市幸福指數可視化大屏.html"可以直接在瀏覽器中打開,支持拖拽、縮放等交互操作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94981.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TikTok網頁版訪問障礙破解:IP限制到高效運營的全流程指南

在跨境電商與社媒運營的數字化浪潮中&#xff0c;TikTok網頁版因其多賬號管理便捷性、內容采集高效性等優勢&#xff0c;成為從業者的核心工具&#xff0c;然而“頁面空白”“地區不支持” 等訪問問題卻頻繁困擾用戶。一、TikTok網頁版的核心應用場景與技術特性&#xff08;一&…

spring的知識點:容器、AOP、事物

一、Spring 是什么? Spring 是一個開源的 Java 企業級應用框架,它的核心目標是簡化 Java 開發。 它不是單一的工具,而是一個 “生態系統”,包含了很多模塊(如 Spring Core、Spring Boot、Spring MVC 等),可以解決開發中的各種問題(如對象管理、Web 開發、事務控制等)…

HTML ISO-8859-1:深入解析字符編碼標準

HTML ISO-8859-1:深入解析字符編碼標準 引言 在HTML文檔中,字符編碼的選擇對于確保網頁內容的正確顯示至關重要。ISO-8859-1是一種廣泛使用的字符編碼標準,它定義了256個字符,覆蓋了大多數西歐語言。本文將深入探討HTML ISO-8859-1的原理、應用及其在現代網頁開發中的重要…

【計算機網絡 | 第4篇】分組交換

文章目錄前言&#x1f95d;電路交換&#x1f34b;電路交換技術的優缺點電路交換的資源分配機制報文交換&#x1f34b;報文交換技術的優缺點存儲轉發技術分組交換&#x1f426;?&#x1f525;分組交換的過程分組交換解決的關鍵問題傳輸過程的關鍵參數工作原理分組傳輸時延計算網…

LLM - AI大模型應用集成協議三件套 MCP、A2A與AG-UI

文章目錄1. 引言&#xff1a;背景與三協議概覽2. MCP&#xff08;Model Context Protocol&#xff09;起源與動因架構與規范要點開發實踐3. A2A&#xff08;Agent-to-Agent Protocol&#xff09;起源與動因架構與規范要點開發實踐4. AG-UI&#xff08;Agent-User Interaction P…

機器學習DBSCAN密度聚類

引言 在機器學習的聚類任務中&#xff0c;K-means因其簡單高效廣為人知&#xff0c;但它有一個致命缺陷——假設簇是球形且密度均勻&#xff0c;且需要預先指定簇數。當數據存在任意形狀的簇、噪聲點或密度差異較大時&#xff0c;K-means的表現往往不盡如人意。這時候&#xff…

RecyclerView 緩存機制

一、四級緩存體系1. Scrap 緩存&#xff08;臨時緩存&#xff09;位置&#xff1a;mAttachedScrap 和 mChangedScrap作用&#xff1a;存儲當前屏幕可見但被標記為移除的 ViewHolder用于局部刷新&#xff08;如 notifyItemChanged()&#xff09;特點&#xff1a;生命周期短&…

大模型SSE流式輸出技術

文章目錄背景&#xff1a;為什么需要流式輸出SSE 流式輸出很多廠商還是小 chunk背景&#xff1a;為什么需要流式輸出 大模型的響應通常很長&#xff0c;比如幾百甚至幾千個 token&#xff0c;如果等模型一次性生成完才返回&#xff1a; 延遲高&#xff1a;用戶要等很久才能看…

[Flutter] v3.24 AAPT:錯誤:未找到資源 android:attr/lStar。

推薦超級課程&#xff1a; 本地離線DeepSeek AI方案部署實戰教程【完全版】Docker快速入門到精通Kubernetes入門到大師通關課AWS云服務快速入門實戰 前提 將 Flutter 升級到 3.24.4 后&#xff0c;構建在我的本地電腦上通過&#xff0c;但Github actions 構建時失敗。 Flutt…

go語言標準庫學習, fmt標準輸出,Time 時間,Flag,Log日志,Strconv

向外輸出 fmt包實現了類似C語言printf和scanf的格式化I/O。主要分為向外輸出內容和獲取輸入內容兩大部分。 內置輸出 不需要引入標準庫&#xff0c;方便 package mainfunc main() {print("我是控制臺打印&#xff0c;我不換行 可以自己控制換行 \n我是另一行")prin…

ElementUI之表格

文章目錄使用ElementUI使用在線引入的方式表格1. 帶狀態表格row-class-name"Function({row, rowIndex})/String"2. 固定表頭(height"string/number"屬性)2.1 屬性的取值2.2 動態響應式高度使用演示2.3 ??自定義滾動條樣式??2.4 表頭高度定制獲取一行信…

K8S 的 Master組件

K8S 的 Master 組件有哪些&#xff1f;每個組件的作用&#xff1f; K8s 大腦的 4 大核心模塊&#xff0c;掌控全局&#xff01; Kubernetes 集群的 Master&#xff08;主節點&#xff09; 就像一座 指揮中心&#xff0c;負責整個集群的調度、管理和控制。它由 4 大核心組件組成…

如何 讓ubuntu 在root 下安裝的docker 在 普通用戶下也能用

在 Ubuntu 系統中&#xff0c;如果 Docker 是以 root 用戶安裝的&#xff0c;普通用戶默認無法直接使用 Docker 命令&#xff08;會報權限錯誤&#xff09;。要讓普通用戶也能使用 Docker&#xff0c;可以按照以下步驟操作&#xff1a;方法 1&#xff1a;將用戶加入 docker 用戶…

模板方法模式:優雅封裝算法骨架

目錄 一、模板方法模式 1、結構 2、特性 3、優缺點 3.1、優點 3.2、缺點 4、使用場景 5、實現示例 5.1、抽象類 5.2、實現類 5.3、測試類 一、模板方法模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一種行為設計模式&#xff0c;它在一個方…

韋東山STM32_HAl庫入門教程(SPI)學習筆記[09]內容

&#xff08;1&#xff09;SPI程序層次一、核心邏輯&#xff1a;“SPI Flash 操作” 是怎么跑起來的&#xff1f;要讀寫 SPI Flash&#xff0c;需同時理解 硬件連接&#xff08;怎么接線&#xff09; 和 軟件分層&#xff08;誰負責發指令、誰負責控制邏輯&#xff09;&#xf…

線上Linux服務器的優化設置、系統安全與網絡安全策略

一、Linux服務器的優化設置 線上Linux的優化配置序號基礎優化配置內容說明1最小化安裝系統【僅安裝需要的&#xff0c;按需安裝、不用不裝】&#xff0c;必須安裝的有基本開發環境、基本網絡包、基本應用包。2ssh登錄策略優化 Linux服務器上的ssh服務端配置文件是【/et…

基于人眼視覺特性的相關圖像增強基礎知識介紹

目錄 1. 傳統的灰度級動態范圍優化配置方法 2.基于視覺特性的灰度級動態范圍調整優化 1. 傳統的灰度級動態范圍優化配置方法 傳統的灰度級動態范圍調整方法主要包括線性動態范圍調整及非線性動態 范圍調整。線性動態范圍調整是最簡單的灰度級動態范圍調整方法&#xff0c;觀察…

Selenium使用超全指南

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快概述selenium是網頁應用中最流行的自動化測試工具&#xff0c;可以用來做自動化測試或者瀏覽器爬蟲等。官網地址為&#xff1a;相對于另外一款web自動化測試工具QT…

Go通道操作全解析:從基礎到高并發模式

一、channel類型 Go 語言中的通道(channel)是一種特殊的類型。它類似于傳送帶或隊列,遵循先進先出(FIFO)原則,確保數據收發順序的一致性。每個通道都是特定類型的導管,因此在聲明時必須指定其元素類型。 channel是一種類型, 一種引用類型。 聲明通道類型的格式如下:…

Linux網絡--1、網絡基礎

目錄 一、網絡發展 二、理解分層 2.1OSI七層模型 2.2TCP/IP分層模型 2.3分層的好處 三、認識協議 3.1初步認識 3.2了解指定組織 3.3具體協議理解 3.3.1是什么 3.3.2為什么 3.3.3與OS的關系 3.4總結 四、網絡傳輸流程 4.1局域網網絡傳輸 4.1.1通信過程 4.1.2概念解析 4.2跨網…