用Python把20年的GDP、人口以及房價數據進行了可視化

来源:https://www.cnblogs.com/zwhy8/archive/2020/07/18/13337430.html
-Advertisement-
Play Games

前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:CDA數據分析師 提到一線城市,大家馬上會想到北上廣深這四個超級大都市。除此之外,近年來新一線城市這個概念也越來越被大眾所熟知。 2013年,財經媒體第一財經提出了提出 ...


前言

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。

作者:CDA數據分析師

提到一線城市,大家馬上會想到北上廣深這四個超級大都市。除此之外,近年來新一線城市這個概念也越來越被大眾所熟知。

2013年,財經媒體第一財經提出了提出“新一線城市”的概念,以商業資源集聚度、城市樞紐性、城市人活躍度、生活方式多樣性以及未來可塑性作為評判的五大指標,針對全國幾百個地級市進行了全新的排名,將未來最有潛力晉升傳統一線城市的15個城市稱為“新一線城市”。

 

 

 

作為距離一線城市最近的梯隊,新一線城市的榜單可以說含金量十足,每年的評選都備受關註。

 

 

2020年15座新一線城市包括成都、重慶、杭州、武漢、西安、天津、蘇州、南京、鄭州、長沙、東莞、沈陽、青島、合肥、佛山。

 

其中在人口增量方面:西安由於大幅降低落戶門檻,且將西咸新區人口納入人口總數後,在近3年以新增128.87萬常住人口,排名15個新一線城市常住人口增量第一位。常住人口增量連年提升的杭州,則以近3年117.2萬的增量,排名新一線城市第二位。

和它們相比,天津近3年以來出現常住人口-0.29萬的增長,沈陽3年增長了3萬,勢頭微弱。

那麼這15座新一線城市

近20年來的GDP變化趨勢如何?

人口競爭力如何排座次?

房價又是怎樣的?

今天我們就來用數據全面解讀這15座城市。

這次我們使用Python的動態可視化庫plotly,對這15座城市從2000年到2019年這20年的GDP、人口以及房價數據進行了可視化。下麵就讓我們來一起看看吧!

我們的數據從以下四個維度展開:

  • 新一線城市2000-2019年GDP變化趨勢
  • 新一線城市2000-2019年GDP和人口變化趨勢
  • 新一線城市2001-2019年人口增量數據
  • 新一線城市近10年平均房價走勢圖

 

數據獲取

 

我們使用Python的可視化庫Plotly對15座新一線城市的人口/GDP/房價數據進行動態可視化展示。plotly是一個基於javascript的繪圖庫,繪圖種類豐富,效果美觀,使用Plotly可以畫出很多媲美Tableau的高質量圖。

如果你沒有安裝plotly,可以使用以下代碼進行pip安裝:

pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple

首先導入我們需要使用的包,其中pandas用於數據整理,plotly用於數據可視化。

# 導入包
import pandas as pd

import plotly as py 
import plotly.graph_objs as go 
import plotly.express as px 
from plotly import tools

 

使用pandas讀入併合並數據集,我們選取的數據來自於國家統計局網站,該數據包含了15座新一線城市自2000年~2019年20年期間的GDP和人口數據,這是一份帶有時間序列的面板數據,適合進行動態可視化繪圖使用。

# 讀入數據
df_gdp = pd.read_excel('../data/新一線城市人口和GDP.xlsx', sheet_name=0)
df_pop = pd.read_excel('../data/新一線城市人口和GDP.xlsx', sheet_name=1)

# 合併數據
df_all = pd.merge(left=df_gdp, right=df_pop, on=['城市', '年份']) 
df_all = df_all.sort_values(['城市','年份']) 
df_all.head() 

 

 

 

 

 

數據可視化

 

Plotly有兩個很常用的繪圖模塊,分別是graph_objs和express,此次我們主要使用express進行動態可視化圖形的繪製,使用它可以輕鬆繪製如散點圖、條形圖、漏斗圖、桑基圖等圖形。

使用官網:

https://plotly.com/python/plotly-express/

繪圖的步驟也非常簡單:

  • 直接使用px調用某個繪圖方法,會自動創建畫布,並畫出圖形。
  • 展示圖形,可以直接在notebook中展示,也可以使用py.offline.plot(fig,filename="XXX.html")代碼保存成html網頁動態圖片。

接下來我們演示使用plotly.express繪製動態條形圖和散點圖。

首先繪製一個動態條形圖,用於展示15座城市隨時間走勢的GDP變化趨勢,調用bar的方法即可。

繪圖主要參數解釋:

  1. data_frame:數據框名稱
  2. x:列名,展示的維度
  3. y:列名,展示的度量
  4. color:顏色
  5. text:條形圖標記文本
  6. title:標題
  7. range_y:y軸的刻度範圍
  8. animation_frame:列名,控制動畫幀
# 條形圖
fig2 = px.bar(df_all, x='城市', y='GDP', color='城市', text='GDP', 
             title='新一線城市近20年GDP變化趨勢',
             range_y=[300, 25000],
             animation_frame='年份',
             ) 
fig2.update_layout(yaxis_title='GDP(億元)')  # 更新佈局配置
py.offline.plot(fig2, filename='2000-2019年GDP變化趨勢.html')

 

 

然後繪製一個動態散點圖,用於展示15座城市隨時間走勢的GDP和人口變化趨勢,調用scatter的方法即可。繪圖步驟和上述類似。

 

# 散點圖
fig3 = px.scatter(df_all, x='GDP', y='人口', animation_frame='年份', animation_group='城市', 
                 size='人口', color='城市', hover_name='城市', size_max=50, text='城市',
                 range_x=[300, 25000], range_y=[150, 4000],
                 title='新一線城市近20年GDP和人口變化趨勢', 
                ) 
fig3.update_layout(xaxis_title='GDP(億元)', yaxis_title='人口(萬人)')
py.offline.plot(fig3, filename='2000-2019年GDP和人口變化趨勢.html')

 

 

可視化效果

 

下麵我們來具體看下可視化效果:

 

新一線城市

2000-2019年GDP變化趨勢

 

 

新一線城市

2000-2019年GDP和人口變化趨勢

 

 

 

新一線城市

2001-2019年人口增量數據

 

 

 

新一線城市近10年平均房價走勢圖

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oraclejdbc.properties driverClassName=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:orclusername=dbtestpassword=dbtest OJDBCUti ...
  • 簡介 字元串在各種編程語言中都是很基礎的一種類型,在Go中字元串簡單理解就是一個數組,數組裡面的元素是byte類型。因此基本上擁有類似數組的全部特性。例如len可以返回字元串的位元組數,註意不是字元的長度: s := "go" fmt.Println(len(s)) //2 也可以根據下標訪問該位置的 ...
  • 3.4.1 hash map 整體框架是數組結構,每一個位置儲存同hashcode的鏈表與j7對比,j8變更的是,儲存的鏈表改成紅黑樹,從On時間複雜度降低至Ologn3.4.2 concurrentHashMap不可擴容數組儲存16個segment,每個sement為線程安全的數組,每一個數組類似 ...
  • Java的經久不衰,很大程度上得益於Java的生態好。在日常開發中,我們也會經常使用到各種開源庫和工具類,為了避免重覆造輪子,本文將貼出工作及學習中會用到的部分開源庫和工具類。Java的生態實在太大,這裡只能列舉一部分。如果你對此感興趣,不妨去讀讀他們的源碼。 ...
  • 引子 近一個月都在與字體打交道,查閱了不少資料。 發現國內很少有這方面的一些資源,有點奇怪。 故此,想稍微梳理一下這方面的一些資料以及信息,方便對這方面感興趣的朋友參閱。 文字渲染的組成 文字渲染嚴格意義上來說包含幾個主要的核心模塊,分別是: 1.字體光柵化 FreeType 它是一個軟體字體引擎, ...
  • 閱讀書籍是學習的重要方法之一,而是相對於博客等零散內容來講讀書是更加系統、(時間)成本更低、收穫更多的一種學習方式。在閱讀書籍,特別是技術類書籍時有些朋友往往會犯一些錯誤或不知所措。本文給大家分享一些閱讀經驗。 選書 讀書的第一步並不是怎麼去讀書,而是怎麼選書,只有選擇了比較好的書,才能事半功倍。 ...
  • ...
  • 很多小伙伴想要好好地學習一下C語言的知識,但是又不知道怎麼學,應該學哪一些C語言的知識,筆者在網上看到了這一張C語言的比較完善的C語言的學習路線圖,有興趣的小伙伴可以保存起來哈! C語言是面向過程的,而C++是面向對象的。編程入門就選C語言,同時C語言也是大學電腦相關專業必修課之一! C和C++的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...