新一線城市競爭力盤點,用Python繪製動態圖帶你看懂!

2020-12-24 CDA數據分析師

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 可視化效果

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

想要獲取具體代碼或者可視化效果圖的,可以私信或者給小編留言。

相關焦點

  • Python-Matplotlib 動態曲線圖繪製
    引言動態曲線圖不同於動態氣泡圖,它可以查看部分指標在一段時間內的變化趨勢,本期推文將推出動態曲線圖的 Matplotlib 繪製過程,核心過程為 折線圖 和 散點圖 的繪製,詳細過程如下:02.數據可視化動態圖表的繪製主要在於折線圖和散點圖的繪製,我們採用的依舊還是面向對象式繪圖方式,這裡建議繪製較為複雜的圖表時多採用此方法進行繪製。
  • 實例:用Python繪製一套「會跳舞」的動態圖形
    選自TowardsDataScience作者:Costas Andreou機器之心編譯參與:Jamin、張倩在讀技術博客的過程中,我們會發現那些能夠把知識、成果講透的博主很多都會做動態圖表。他們的圖是怎麼做的?難度大嗎?
  • 如何用python製作動態二維碼,來哄女朋友開心?
    教你如何用python製作動態二維碼,來哄女朋友開心?5、生成帶圖片的動態二維碼在網上沒有收到同款圖片,只找到了一個類似的動圖,並命名為:發射心心.gif溫馨提醒,微信發動態圖會變成表情包,建議發靜態圖。也就是改成picture='xinxin.jpg'即可。
  • 怎樣用Python製作好玩的GIF動圖
    其實我們還能讓可視化圖形逼格更高一些,今天就分享一下如何讓可視化秀起來:用Python和matplotlib製作GIF圖表。假如電腦上沒有安裝ImageMagick,先去這裡按照自己的電腦系統下載對應版本,如果我們想用matplotlib的save方法渲染GIF動圖,就需要安裝ImageMagick。
  • 如何對比不同人物的數據,雷達圖輕鬆搞定,Python用兩種方式繪製
    上一篇內容,我們對世界十大航母排行數據,通過使用python中的matplotlib模塊,繪製了不同類型的圖形進行了數據的可視化(胖五升空,山東入列,網友:能否用python畫全球航母戰力對比圖?)。matplotlib繪製雷達圖思路是這樣的,我們按照屬性值(比如像上面的體力、武力等),將雷達圖的中的圓分為5份,然後,我們將每個人的相關屬性分別繪製在這5個屬性值內即可實現。
  • python matplotlib 繪製雙Y軸曲線圖
    微信公眾號:數據皮皮俠如果你覺得該公眾號對你有幫助,歡迎關注、推廣和宣傳內容目錄:python matplotlib 繪製雙Y軸曲線圖雙X軸的可以理解為共享y軸1.ax1=ax.twiny()2.ax1=plt.twiny()
  • 用Python畫出動態圖後,我眼睛亮了
    (結尾動態圖高能,一定要看到最後!),今天我們就來教你用Python輕鬆實現!02教你用Python繪製美國申請失業險人數動態圖我們使用pyecharts包進行美國申請失業保險人數的動態趨勢圖的繪製,如果你沒有安裝pyecharts,可以使用以下代碼進行pip安裝。
  • 慢步python,你苦苦找尋的python中文使用手冊在哪裡?這裡有答案
    #學習難度大python對大家來說,應該算是相對新的程式語言。新 意味著可用資料少。其實也挺多了,網上搜索到處都是。即使這樣,我們學習python的道路依舊困難重重。問題在,相關的學習資料不夠系統。初學者使用手冊像以前剛開始使用電視、手機一樣,都有一本使用說明書,即使用手冊。
  • Python圖表繪製很簡單,一文帶你學會如何生成帶圖例的餅圖
    大家已經知道,在Python中想要生成餅圖,就需要調用matplotlib庫中的pie()函數,而如何想要生成獨具特色的餅圖,就需要了解pie()函數中各個關鍵字參數的含義和賦值方式。好啦,那怎麼才能生成帶圖例的餅圖呢?
  • python圖像處理-gif動圖
    前言相信很多人都有看過動圖,玩過一些小遊戲或者看過定格動畫,可能你很好奇,它們都是怎麼做出來的,其中的原理主要還是利用人的人眼暫留效應,簡單點來說,就是人看過一張圖片後,你把圖片拿走後,眼睛裡還是會短暫的保留一段時間,在這個期間內你在看另外一張圖片
  • python多重線性回歸分析
    df['營銷費用(萬元)'].corr(df['銷售額(萬元)'])df['客流量(萬人次)'].corr(df['銷售額(萬元)'])#營銷費用 作為x軸#銷售額 作為y軸#繪製散點圖df.plot('營銷費用(萬元)','銷售額(萬元)',kind='scatter')#多重線性回歸
  • 無編程基礎,無計算機基礎都能看懂的零基礎入門Python
    通常我們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。(1)動態類型語言:動態類型語言是指在運行期間才去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。
  • 會Python的人,在職場將非常搶手
    去年,公司做新品投放測試時,echo用python爬蟲抓取了競品資料和市場數據,分析出不同價格產品的銷售情況、不同產品和市場的關係。用python獲取市場分析表敲幾行代碼電腦就會自動找到產品的數據資料,還能自動繪製成,整個過程5分鐘都不用。
  • 4種繪製帶誤差線的柱形圖
    python100天還在繼續,到第三周的時候就顯得有點難啃了,筆記中很難進行很好的轉述,因此就對原有的python3筆記進行補充。今天的推送主要解決不同方式下的柱形圖可視化,當然主要要使用python。R真香。柱形圖繪圖的方式,有需要挑自己喜歡的用。以下數據使用參考資料中的示例數據。
  • 使用Python生成藝術二維碼
    網上你可能會見過不少動態的二維碼,除了感覺很新奇以外,或許你會問這是怎麼做出來的?
  • 一張圖帶你看懂!
    一張圖帶你看懂!一張圖帶你看懂!》申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。
  • Python學習筆記:繪製填充區域圖,多組條形圖和散點圖
    繪製帶填充區域的圖表#導入繪圖所需要的模塊,圖紙,展示,獲取圖表對象from matplotlib.pyplot import figure,show,gcaimport numpy as np#np.arange()函數,第一個參數為起點,第二個參數為終點,第三個參數為步長x=np.arange(0,2,0.01)#函數y1=sin(2*pi*x),y2=1.2*sin(
  • 5個無聊Python程序,用Python整蠱你的朋友們吧
    以下程序,不要發代碼,要不實現不了你整蠱的目的。要打包成一個 exe 程序,發給朋友才有意思。使用 pip install pyinstaller。print("猜錯嘍")你的朋友將永遠無法知道你在想什麼。當然我安裝 360 之後,程序沒了。有興趣研究免殺的,可以在給本文點個讚,點讚過 100,我出套 Python 免殺教程。
  • 人生苦短,我用Python
    Python入門爬蟲這是我的第一個python項目,在這裡與大家分享出來~需求設計開始我們將解析的功能放在了服務端,但是後來考慮到用戶隱私問題。後來將解析功能放到了app端,服務端只負責收集數據,然後將新數據發送給app端。關於服務端主要是分離出兩個功能,一、響應app端請求返回數據。二、爬取數據,存入資料庫。
  • 一文帶你學會如何用Python生成帶誤差棒的並列和堆積柱狀圖
    首先,聊聊在Python中如何繪製帶誤差棒的並列柱狀圖通過前面咱們聊過的內容,大家已經知道繪製柱狀圖需要調用matplotlib庫中的bar()函數,那如何繪製帶誤差棒的多數據並列柱狀圖呢?好啦,下面咱們通過調用Python解釋器來看一下效果如何吧:通過運行上面指令就可生成咱們所要繪製的帶誤差棒的多數據並列柱狀圖,如下圖所示:下面,聊聊在Python中如何繪製帶誤差棒的堆積柱狀圖關於堆積柱狀圖,咱們已經共同探討過了,