📜  如何在 Python-Plotly 中创建堆积条形图?(1)

📅  最后修改于: 2023-12-03 15:24:20.426000             🧑  作者: Mango

如何在 Python-Plotly 中创建堆叠条形图

介绍

Python-Plotly是一个用于数据可视化的强大Python库,它可以帮助你轻松绘制各种类型的图表。其中,堆叠条形图是一种常见的图表类型,通常用于比较多个类别的各自组成部分的大小,这些类别通常是连续的。

本文将介绍如何使用Python-Plotly库创建堆叠条形图。

步骤
安装Python-Plotly库

在开始之前,您需要先安装Python-Plotly库。您可以通过运行以下命令(需要使用管理员权限)来安装它:

pip install plotly

如果您使用的是Anaconda,则可以使用以下命令来安装它:

conda install -c plotly plotly
导入必要的库

在开始创建堆叠条形图之前,您需要导入以下库:

import plotly.graph_objs as go
from plotly.subplots import make_subplots
准备数据

接下来,您需要准备用于创建堆叠条形图的数据。在本示例中,我们将使用以下数据集:

labels = ['A', 'B', 'C', 'D']
x = [10, 20, 30, 40]
y1 = [5, 10, 15, 20]
y2 = [5, 10, 15, 20]
y3 = [5, 10, 15, 20]

其中,labels是要显示在x轴上的标签,x是所有类别的总和,y1y2y3是每个类别各自的组成部分。

创建堆叠条形图

接下来,您需要使用Python-Plotly库创建堆叠条形图。在本例中,我们将使用make_subplots函数创建一个包含一个图形的图表,并在该图形中添加堆叠条形图。

fig = make_subplots(rows=1, cols=1, start_cell='top-left')

fig.add_trace(go.Bar(x=labels, y=y1, name='Category 1'), row=1, col=1)
fig.add_trace(go.Bar(x=labels, y=y2, name='Category 2'), row=1, col=1, base=y1)
fig.add_trace(go.Bar(x=labels, y=y3, name='Category 3'), row=1, col=1, base=[y1[i] + y2[i] for i in range(len(y1))])

fig.show()

这将创建一个堆叠条形图,其中每个类别的各自组成部分均紧密排列在一起,并以不同的颜色填充。其中,第一个图形定义了第一个类别的大小,第二个图形定义了第二个类别的大小,但将其堆叠在第一个类别上,第三个图形定义了第三个类别的大小,但将其堆叠在前两个类别上。

配置图表

您还可以根据需要配置堆叠条形图。例如,您可以添加轴标签、图表标题或修改轴范围等。

fig.update_xaxes(title_text='X Axis Title')
fig.update_yaxes(title_text='Y Axis Title')

fig.update_layout(title_text='Stacked Bar Chart')
运行完整代码

以下是完整代码,您可以将其复制并在Python环境中运行:

import plotly.graph_objs as go
from plotly.subplots import make_subplots

labels = ['A', 'B', 'C', 'D']
x = [10, 20, 30, 40]
y1 = [5, 10, 15, 20]
y2 = [5, 10, 15, 20]
y3 = [5, 10, 15, 20]

fig = make_subplots(rows=1, cols=1, start_cell='top-left')

fig.add_trace(go.Bar(x=labels, y=y1, name='Category 1'), row=1, col=1)
fig.add_trace(go.Bar(x=labels, y=y2, name='Category 2'), row=1, col=1, base=y1)
fig.add_trace(go.Bar(x=labels, y=y3, name='Category 3'), row=1, col=1, base=[y1[i] + y2[i] for i in range(len(y1))])

fig.update_xaxes(title_text='X Axis Title')
fig.update_yaxes(title_text='Y Axis Title')

fig.update_layout(title_text='Stacked Bar Chart')

fig.show()
结论

本文介绍了如何使用Python-Plotly库创建堆叠条形图。使用这个简单的例子,您可以轻松地创建您自己的堆叠条形图,并添加自己的数据和配置,以满足您的需求。