CDA數據分析師 出品
作者:Mika
數據:真達
後期:澤龍
【導讀】今天我們用數據來聊一聊新一線城市。
Show me data,用數據說話
今天我們聊一聊 新一線城市
提到一線城市,大家馬上會想到北上廣深這四個超級大都市。除此之外,近年來新一線城市這個概念也越來越被大眾所熟知。
2013年,財經媒體第一財經提出了提出「新一線城市」的概念,以商業資源集聚度、城市樞紐性、城市人活躍度、生活方式多樣性以及未來可塑性作為評判的五大指標,針對全國幾百個地級市進行了全新的排名,將未來最有潛力晉升傳統一線城市的15個城市稱為「新一線城市」。
作為距離一線城市最近的梯隊,新一線城市的榜單可以說含金量十足,每年的評選都備受關注。
(來自維基百科)
2020年15座新一線城市包括成都、重慶、杭州、武漢、西安、天津、蘇州、南京、鄭州、長沙、東莞、瀋陽、青島、合肥、佛山。
(來自21世紀報導)
其中在人口增量方面:西安由於大幅降低落戶門檻,且將西鹹新區人口納入人口總數後,在近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年平均房價走勢圖
01 數據獲取
我們使用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()
02 數據可視化
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')
03 可視化效果
下面我們來具體看下可視化效果:
想要獲取具體代碼或者可視化效果圖的,可以私信或者給小編留言。