前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者: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的方法即可。
繪圖主要參數解釋:
- data_frame:數據框名稱
- x:列名,展示的維度
- y:列名,展示的度量
- color:顏色
- text:條形圖標記文本
- title:標題
- range_y:y軸的刻度範圍
- 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年平均房價走勢圖