数据可视化与图表制作

在当今这个技术飞速发展的时代,数据可视化成为了一个热门话题。随着数据可视化领域的不断成长,现在有了许多不同类型的视觉图表。然而,面对一堆统计数据,数据分析师可能能够理解其中的信息,但对于普通人来说,仅凭直观感受很难理解数据所传达的信息。因此,需要图表来帮助可视化数据。

在众多图表类型中,竞速条形图因其动态展示数据而广受欢迎。特别是在展示COVID-19疫情数据时,竞速条形图能够清晰地告诉在不同时间段内哪个国家的病例数最多。

图表类型概览

本文将介绍以下几种图表类型:

  • Plotly制作的竞速条形图
  • raceplotly制作的竞速条形图
  • 普通条形图
  • 堆叠条形图
  • 分组条形图
  • 定制条形图
“可视化能够回答未曾意识到的问题。” —— Ben Schneiderman

竞速条形图

条形图因其简单直观而广受欢迎。本文将从如何导入可视化和读取数据集的库开始,逐步介绍如何制作竞速条形图。

首先,需要导入Plotly Express库和Pandas库来处理数据。

import plotly.express as pximport pandas as pd

使用的数据集包含8列和1704行数据。其中有3列是分类数据(国家、大洲、iso_alpha),5列是数值数据(年份、预期寿命、人口、人均GDP、iso_num)。

在制作图表之前,需要检查数据集中是否有空值,并了解每个列的唯一值数量。

df.isnull().sum()df.nunique()

PlotlyExpress提供了令人惊叹的动画图表功能。通过这些功能,可以观察到在不同时间段内哪个大洲的人口最多。以下是制作竞速条形图的代码示例:

fig_bar = px.histogram(df, x="continent", y="pop", color="continent", animation_frame="year", animation_group="country", range_y=[0,4000000000], color_discrete_sequence=px.colors.qualitative.T10)

在这段代码中,设置了x轴和y轴的值,动画帧的值,以及数据分组的值。还设置了x轴和y轴的范围,以确保数据在动画过程中始终保持可见。

在制作Plotly动画图表时,需要设置以下参数:

  • x, y:x轴和y轴的值
  • animation_frame:每个动画帧的值
  • animation_group:数据分组的值(如果可用)
  • range_x, range_y:x轴和y轴的范围

注意:应始终固定x_range和y_range,以确保数据在条形图动画过程中始终保持可见。

可以通过以下方式设置x轴和y轴:

  • 升序和降序

还可以通过调整margin的值来改变图表的外观。默认情况下,图例会出现在右侧,但如果需要,也可以将其设置为水平或垂直。此外,可以为条形图添加不同的颜色,并根据喜好添加背景色。

除了Plotly动画,还可以使用raceplotly来制作竞速条形图。以下是使用raceplotly制作竞速条形图的代码示例:

!pip install raceplotlyfrom raceplotly.plots import barplot

在这段代码中,没有预先指定颜色,而是直接使用raceplotly来创建竞速条形图。

将制作一个简单的条形图,并在主条上显示文本。图表将展示加拿大的预期寿命随年份的变化。以下是制作普通条形图的代码示例:

data_canada = px.data.gapminder().query("country == 'Canada'")fig = px.bar(data_canada, x='year', y='lifeExp', text='lifeExp', color_discrete_sequence=['#b279a2'], title='加拿大预期寿命随年份变化', height=300)

堆叠条形图展示了一个分类变量与其子分类变量之间的数量关系。它们显示了子分类随时间的变化。堆叠条形图主要用于比较变量之间的关系。它们是二维的,有两个轴:一个轴代表分类变量,另一个轴代表数值。可以以两种方式展示堆叠条形图:垂直和水平。

以下是制作堆叠条形图的代码示例:

dff = px.data.gapminder().query("country == 'India' | country == 'Canada'| country == 'United States'")fig_stack = px.bar(dff, x='year', y='lifeExp', color='country', color_discrete_sequence=['#72b7b2','#4c78a8','#b279a2'], title='加拿大|印度|美国预期寿命随年份变化', height=300)

分组条形图与堆叠条形图类似,但每个分类变量的子分类变量分别展示在不同的条形中。以下是制作分组条形图的代码示例:

dff = px.data.gapminder().query("country == 'India' | country == 'United States'")fig2 = px.bar(dff, x='year', y='lifeExp', color='country', color_discrete_sequence=['#72b7b2','#b279a2'], title='印度|美国预期寿命随年份变化', height=300, barmode='group') data_canada = df[df.country == 'Canada']fig1 = px.bar(data_canada, x='year', y='pop', height=400, hover_data=['lifeExp', 'gdpPercap'], color='lifeExp')

关于

  • LinkedIn
  • Medium
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485