Python 如何在Python-Plotly中分组柱状图

Python 如何在Python-Plotly中分组柱状图

数据可视化是理解和解释复杂数据的关键步骤。在众多图表类型中,柱状图仍然是表示分类数据的一种通用且受欢迎的选择。使用Python作为领先的数据分析语言和Plotly作为图形化库,我们可以轻松而精确地创建和定制柱状图,包括分组柱状图。

今天,我们将深入探讨使用Plotly在Python中创建分组柱状图的过程。当比较同一轴上多个系列的类别时,使用分组柱状图。这种类型的图表可以提供更全面的复杂数据集的视觉表示,有助于突出显示模式,相关性和对比。

语法

使用Plotly的express函数创建分组柱状图的标准语法如下:

plotly.express.bar(data_frame, x, y, color, barmode = 'group', ...)

在这种语法中:

  • data_frame – 这是您用作数据源的DataFrame。

  • x – DataFrame中表示x轴值的列。

  • y – DataFrame中表示y轴值的列。

  • color – 您要使用的用于分组数据的列。

  • barmode – 对于分组柱状图,此设置应该设置为’group’。如果没有指定,默认设置为’relative’。

  • …:用于自定义绘图的其他参数的占位符。

步骤

让我们将创建分组柱状图的过程分解为简单的步骤:

  • 导入必要的库。

  • 创建或导入您的数据帧。

  • 根据您的DataFrame指定’x’、’y’和’color’参数。

  • 使用plotly.express.bar()函数创建您的图表。

  • 将barmode设置为’group’。

  • 自定义您的图表(可选)。

  • 显示您的图表。

方法1:从头开始创建分组柱状图

假设我们有三种不同产品(A、B和C)在一年的四个季度的销售数据。我们想要用分组柱状图来表示这些数据以进行更好的比较。

示例

# Import necessary libraries
import plotly.express as px
import pandas as pd

# Create the DataFrame
data = {'Quarters': ['Q1', 'Q2', 'Q3', 'Q4'],
      'Product A': [200, 150, 100, 180],
      'Product B': [220, 130, 90, 150],
      'Product C': [210, 160, 130, 170]}

df = pd.DataFrame(data)

# Convert the DataFrame from wide to long format
df_melt = df.melt(id_vars='Quarters', var_name='Products', value_name='Sales')

# Create the grouped bar chart
fig = px.bar(df_melt, x='Quarters', y='Sales', color='Products', barmode='group')

# Show the plot
fig.show()

输出

Python 如何在Python-Plotly中分组柱状图

解释

首先,我们在前两行引入了必要的库组件。为了简洁起见,我们将plotly.express缩写为px。plotly.express是Plotly程序的一个直观高级接口。此外,我们还引入了pandas,这是一个用于数据处理和分析的强大包,我们用其别名pd来引用。

然后,我们构建了一个字典,将其称为data,并对其进行了修改,以包含三种不同物品(’A’,’B’和 ‘C’)在四个不同季度(’Q1’到’Q4’)的销售。接下来,我们将该字典转换为一个pandas DataFrame df。

利用melt()函数,我们将DataFrame从宽格式转换为长格式。要保持不变的列由id_vars参数确定,而新生成列的名称分别由var_name和value_name指定。

在制作柱状图时,调用px.bar()方法来完成繁重的工作。x参数、y参数和variety参数分别表示DataFrame中将用于表示分组色调、x轴和y轴的列。为了制作分组柱状图,将barmode设置为group。

通过最后一次调用show()函数来显示图表。

方法2:从外部数据生成分组柱状图

假设我们有一个包含不同地区和产品销售数据的外部CSV文件(’sales_data.csv’)。

示例

# Import necessary libraries
import plotly.express as px
import pandas as pd

# Load the DataFrame from an external CSV file
df = pd.read_csv('sales_data.csv')

# Create the grouped bar chart
fig = px.bar(df, x='Region', y='Sales', color='Product', barmode='group')

# Customize the plot
fig.update_layout(title_text='Sales by Product and Region',
                  xaxis_title='Region',
                  yaxis_title='Sales')

# Show the plot
fig.show()

输出

Python 如何在Python-Plotly中分组柱状图

解释

引入基本库是我们的起点,就像我们在第一种方法中所做的一样。

在这种情况下,与其生成自己的DataFrame,我们使用pd.read_csv()函数从外部CSV文件加载它,然后将文件转换为DataFrame。

我们以几乎相同的方式生成了一个分组条形图,只是在这种情况下,我们使用的是DataFrame中之前未使用过的列名。

可以使用update_layout()函数自定义图表。这里,我们给图表添加了标题,然后标记了x轴和y轴。

最后一步是展示图表。

结论

分组条形图非常有用,可以比较同一类别下的多个数据系列。使用Python和Plotly,我们可以轻松地从现有的数据集或新创建的数据集生成这些图表。Plotly中的自定义选项可以根据我们特定的视觉和解释需求进行调整。

请记住,视觉信息分析不仅仅是制作漂亮的图表,也包括传达复杂的信息。因此,对于图表类型、变化方案和设计元素的选择要仔细考虑,以确保您的数据故事尽可能清晰和有说服力。通过掌握分组条形图,您将为数据可视化工具箱增添一个强大的工具。祝您绘图愉快!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程