用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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...