Crossin的编程教室

2024年美国总统大选可视化分析 | Pandas+PyEcharts

2024年美国总统选举,是美国历史上第60届(第47任)总统选举,大选于2024年11月5日进行,胜利者将在明年的1月入主白宫。文本将利用Python分析「2024年美国总统大选数据」,看看美国各州选票分布等情况。

选举制度:
  • 选举人票:美国全部"选举人票"共538张,是参议员(100名)、众议员(435名)、华盛顿特区代表(3名)的总数。

  • 胜者全得:除缅因州和内布拉斯加州外,总统候选人只要在该州获得相对多数选民投票,就能获取该州所有的选举人票。

  • 选举结果:候选人在各州赢得的选举人票累计超过538票的一半(270张),就当选总统。
涉及到的库:
  • Pandas — 数据处理

  • Pyecharts — 可视化图表

1. 导入模块
import pandas as pd
from pyecharts.charts import *
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')
2. Pandas数据处理

2.1 读取数据 

df = pd.read_csv('./2024年美国总统大选数据.csv')

Image

2.2 查看数据信息

df.info()

Image

  • 一共有50个州和1个特区

2.3 各州数据统计

Image
3. Pyecharts数据可视化
3.1 2024年美国总统选举总选票结果
def get_bar1():
    bar1 = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            title_opts=opts.TitleOpts(
                title='1-2024年美国总统选举总选票结果',
                subtitle=subtitle,
                pos_left='center',
                pos_top='2%',
                title_textstyle_opts=opts.TextStyleOpts(color='#4FC3F7',font_size=35)
            ),
            yaxis_opts=opts.AxisOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(
                axisline_opts=opts.AxisLineOpts(is_show=False),
                splitline_opts=opts.SplitLineOpts(is_show=False),
                axistick_opts=opts.AxisTickOpts(is_show=False)
            ),
        )    )
Image
3.2 2024年美国总统选举各州选票分布
def get_bar2():
    bar2 = (
        Bar()
        .add_xaxis(data_x)
        .add_yaxis('Kamala Harris', data_Harris, stack='1',
                    label_opts=opts.LabelOpts(position='insideLeft', formatter=JsCode(js)))
        .add_yaxis('', data_Other, stack='1',
                    label_opts=opts.LabelOpts(is_show=False))
        .add_yaxis('Donald Trump', data_Trump, stack='1',
                    label_opts=opts.LabelOpts(position='insideRight', formatter=JsCode(js))
                  )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='2-2024年美国总统选举各州选票分布',
                subtitle=subtitle,
                item_gap=5,
              pos_left='center',
              pos_top='1%',
              title_textstyle_opts=opts.TextStyleOpts(color='#4FC3F7',font_size=25)
            ),
        )    )
Image
3.3 2024年美国总统选举各州选票地图分布
def get_map():
    map_chart = (
        Map()
        .add('',
              data_pair,
              maptype='美国',
              is_roam=False,
              is_map_symbol_show=False,
              label_opts=opts.LabelOpts(is_show=False),
          )
        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            title_opts=opts.TitleOpts(
                title='3-2024年美国总统选举各州选票地图分布',
                subtitle=subtitle,
                item_gap=5,
                pos_left='center',
                pos_top='1%',
                title_textstyle_opts=opts.TextStyleOpts(color='#4FC3F7',font_size=25)
            ),
        )    )
Image
3.4 组合图

Image

4. 源码
项目地址:
https://www.heywhale.com/home/column/60e2740e3aeb9c0017b967a2

Crossin的新书《码上行动:用ChatGPT学会Python编程》已经上市了。本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。【点此查看详细介绍】
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:

添加微信 crossin123 ,加入编程教室共同学习~

Image

感谢转发和点赞的各位~