【39 Pandas+Pyecharts | 第七次人口普查数据分析可视化】

本文使用Python和Pandas、Pyecharts库对第七次全国人口普查数据进行深入分析,展示了人口数量、性别比例、年龄结构以及教育程度的地区分布情况,提供了多种图表形式的数据可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是 👉【Python当打之年(点击跳转)】

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,点击【跳转到网站】。

本期利用 python 分析一下「第七次全国人口普查数据」 ,看看我国各地区分口分布、年龄构成、性别构成以及各地区搜教育程度情况 等等,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

概要:

  • 第七次全国人口普查结果:全国人口共141178万人,与2010年的133972万人相比,增加了7206万人,增长5.38%;年平均增长率为0.53%,比2000年到2010年的年平均增长率0.57%下降0.04个百分点
  • 全国人口中,男性人口为723339956人,占51.24%;女性人口为688438768人,占48.76%。总人口性别比为1.0507。
  • 0—14岁人口占17.95%,15—59岁人口占比63.35%,60岁及以上人口占18.7%,65岁及以上人口占13.5%。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

🏳️‍🌈 1. 导入模块

import pandas as pd
from pyecharts.charts import Line
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Map
from pyecharts.charts import PictorialBar
from pyecharts.charts import Sankey
from pyecharts.charts import Map3D
from pyecharts.globals import ChartType
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

🏳️‍🌈 2. Pandas数据处理

2.1 读取数据

df1 = pd.read_excel('./data/各地区15岁及以上人口平均受教育年限.xlsx')
df2 = pd.read_excel('./data/各地区每10万人口中拥有的各类受教育程度人数.xlsx')
df3 = pd.read_excel('./data/各地区人口.xlsx')
df4 = pd.read_excel('./data/各地区人口年龄构成.xlsx')
df5 = pd.read_excel('./data/各地区性别构成.xlsx')
df6 = pd.read_excel('./data/全国人口年龄构成.xlsx')

2.2 数据预览

各地区15岁及以上人口平均受教育年限:
在这里插入图片描述

各地区每10万人口中拥有的各类受教育程度人数:

在这里插入图片描述

各地区人口:

在这里插入图片描述

各地区人口年龄构成:

在这里插入图片描述

各地区性别构成:

在这里插入图片描述
全国人口年龄构成:
在这里插入图片描述

🏳️‍🌈 3. Pyecharts数据可视化

3.1 全国各省人口统计三维地图

def get_map3d():
    map3d = (
        Map3D()
        .add_schema(
            map3d_label=opts.Map3DLabelOpts(
                is_show=False
            ),
            emphasis_label_opts=opts.LabelOpts(is_show=False),
            light_opts=opts.Map3DLightOpts(
                main_shadow_quality='high',
                is_main_shadow=True,
                main_intensity=1,
                main_alpha=30,
            ),
            post_effect_opts=opts.Map3DPostEffectOpts(
                is_enable=True,
                is_ssao_enable=True,
                ssao_radius=1,
                ssao_intensity=1
            )
        )
        .add(
            series_name="",
            data_pair=new_area_data,
            type_=ChartType.BAR3D,
            shading="lambert",
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='1-全国各省人口统计三维地图',
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                pos_left='10%',
                pos_bottom='10%',
                range_color=range_color
            ),
        )
    )
    return map3d

在这里插入图片描述

3.2 全国各地区人口数量分布地图

def get_map():
    m = (
        Map()
        .add('',
             data,
             'china',
            )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2-全国各地区人口数量分布地图',
            ),
            legend_opts=opts.LegendOpts(is_show=False),
            visualmap_opts=opts.VisualMapOpts(
                range_color=range_color,
                pos_bottom='10%',
                pos_left='20%'
            ),
            
        )
    )
    return m

在这里插入图片描述

3.3 全国人口性别比例

在这里插入图片描述

3.4 全国总人口性别和地区分布桑基图

def get_sankey():
    sankey = (
        Sankey()
        .add(
            "sankey",
            nodes,
            links,
            pos_top='10%',
            node_width=50,
            node_gap=10,
            node_align='justify',
            focus_node_adjacency=True,
            linestyle_opt=opts.LineStyleOpts(opacity=0.6, curve=0.5, color="source"),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='4-全国总人口性别和地区分布'
            )
        )
    )
    return sankey

在这里插入图片描述

3.5 全国各地区人口年龄构成

def get_bar():
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("销量",y_data1)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='5-奥迪全系销量及裸车价格',
                pos_top='1%',
                pos_left="center",
                title_textstyle_opts=opts.TextStyleOpts(color='#00838F',font_size=25),
            ),
        )
    )
    return bar

在这里插入图片描述

3.6 全国年龄人口占比饼图

def get_pie():
    pie = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(x_data, y_data)],
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='6-全国年龄人口占比饼图',
            ),
            visualmap_opts=opts.VisualMapOpts(
                pos_bottom='10%',
                pos_left='10%',
                is_show=False,
                range_color=range_color
            )
        )
    )
    return pie

在这里插入图片描述

3.7 全国各地区每10万人口中拥有的各类受教育程度人数占比

def get_radar():
    radar = (
        Radar(init_opts=opts.InitOpts(width='1000px', height='600px',bg_color='#CFD8DC')chema(
            schema=schemas,
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
            textstyle_opts=opts.TextStyleOpts(color="#263238"),
        )
        .add(
            series_name="",
            data=[datas],
            linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
        )
        .set_global_opts(
             title_opts=opts.TitleOpts(
                title='7-各项指标平均评分雷达图',
                pos_top='1%',
                pos_left="center",
                title_textstyle_opts=opts.TextStyleOpts(color='#00838F',font_size=25),
            ),
        )
    )
    return radar

在这里插入图片描述

3.8 第六_第七次人口普查各地区15岁及以上人口平均受教育年限

在这里插入图片描述

🏳️‍🌈 4. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

使用 pandaspyecharts 进行数据可视化分析是一个常见的数据分析流程,它们分别负责数据处理和生成图表。以下是基本步骤: 1. **导入库**:首先需要安装 pandas(用于数据处理)和 pyecharts(用于创建图表)。可以使用 `pip install pandas pyecharts` 安装。 ```python import pandas as pd from pyecharts import options as opts from pyecharts.charts import Bar, Line, Pie, Scatter ``` 2. **数据加载**:使用 pandas 的 `read_csv` 函数或者其他适合的方式读取 CSV 文件或数据库中的数据。 ```python data = pd.read_csv('your_data.csv') ``` 3. **数据预处理**:清洗、整理数据,确保数据质量和满足可视化需求。 4. **数据转换**:如果需要,对数据进行分组、计算等操作以便于可视化。例如,按类别计数: ```python grouped_data = data.groupby('category').size().reset_index(name='count') ``` 5. **绘制图表**:根据分析目的选择合适的 pyecharts 图表类型。例如,Bar chart 用于柱状图,Line chart 用于折线图,Pie chart 用于饼图,Scatter chart 用于散点图。 ```python bar_chart = Bar(grouped_data, 'category', 'count') line_chart = Line(data, x_axis=data['date'], y_axis=data['value']) ``` 6. **设置样式**:调整图表标题、标签、颜色、大小等选项。 ```python bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="分类分布")) line_chart.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) ``` 7. **显示或保存图表**:最后通过 `.render()` 或 `.export()` 方法将图表展示在网页上或保存成图片。 ```python bar_chart.render("分类分布.html") line_chart.export("趋势图.png") ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值