社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!

CDA数据分析师 • 6 年前 • 653 次点击  

 



 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的方法即可。


绘图主要参数解释:


  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')


03 可视化效果


下面我们来具体看下可视化效果:


新一线城市

2000-2019年GDP变化趋势



新一线城市

2000-2019年GDP和人口变化趋势



新一线城市

2001-2019年人口增量数据



新一线城市近10年平均房价走势图



关注CDA数据分析师公众号
回复关键字“城市” 
获取详细数据代码

CDA数据分析师 

本文出品:CDA数据分析师(ID: cdacdacda)



参考文献:


新一线城市人口竞争力大盘点:杭州亮了,3年激增百万!有地方却负增长,这些指标很关键!

https://mp.weixin.qq.com/s/btYEttPoeCQ8hOyiRaoPAw

维基百科-一线城市

https://zh.wikipedia.org/wiki/%E4%B8%80%E7%BA%BF%E5%9F%8E%E5%B8%82


📚推荐阅读 READ MORE


(点击下方图片阅读)

吃货的自我修养 | 口味虾哪家最好吃?我用Python告诉你

带你用Python解读高考数据:全国哪里的高校最多?什么专业最热门?

 

📌CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71594