python - Plotly:如何通过plotly Express条形图使用多个数据集?

标签 python plotly data-science data-analysis

我正在使用plotlyexpress和gapminder数据集来绘制条形图,我有一些类似的数据集。我在他们的官方网站上找到了说明,这是代码和图:

import plotly.express as px

gapminder = px.data.gapminder()

fig = px.bar(gapminder, x="continent", y="pop", color="continent",
  animation_frame="year", animation_group="country", range_y=[0,4000000000])
fig.show()

enter image description here

但是,我还希望为每个条添加另一个数据集作为比较。理想情况下,我希望得到如下结果: enter image description here

对于每个条形中的结果,我有一个数据集作为“总数”。 例如,对于第一个条形,“黄色一个”是总数,“蓝色一个”是目标数量,只是我希望将它们组合在同一个图中。但该示例仅显示单个数据集。我想知道如何更改“y”的参数以包含两个数据集?

最佳答案

如果,正如您所说,您有一个相似的数据集,那么您不需要更改 y 的参数来包含两个数据集。您只需向现有数据集添加另一个维度并调整使用 xcolor 参数的方式即可。在您的示例中,您将 大陆 分配给 xcolor。因此,您以两种方式指示不同的大陆。而你不必这样做。您可以使用 color 分割两个数据集,同时仍保留不同大陆上的人口数据。我将向您展示如何做到这一点。


Gapminder 拥有所有五大洲的数据。以下代码片段将 gapminder 数据添加到自身,并使用新列 planet 将组合数据集一分为二。这样你就会拥有两个拥有相同大陆的行星。只要两个行星有相同的大陆,这就会完美地工作。

plotly :

enter image description here

代码:

import plotly.express as px
import pandas as pd

gapminder = px.data.gapminder()
gapminder2=gapminder.copy(deep=True)

gapminder['planet']='earth'
gapminder2['planet']='mars'
gapminder3=pd.concat([gapminder, gapminder2])

fig = px.bar(gapminder3, x="continent", y="pop", color="planet",
  animation_frame="year", animation_group="country", range_y=[0,4000000000*2])
fig.show()

关于python - Plotly:如何通过plotly Express条形图使用多个数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59242519/

相关文章:

python - 如何将 Pandas 框架值中的问号替换为缺失值?

python - Django 的 Misaka 模板标签 - 用双引号括起来的文本

r - 生成 R 绘图列表并将其传递给子图

python - 自动截断 numpy 数组

python - 此输出中的 conda 依赖冲突在哪里?我看不到他们。 :(

python - 为 PyQt5 网络引擎使用 html 中的本地文件

python - 如何使用 python 将 plotly graph 保存为 excel 工作表图像?

python - 在 python 中高级处理多个数据帧

python - 将参与者随机重新分配到组中,以便最初来自同一组的参与者最终不会出现在同一组中

python - 平均提取的数字 block