【问题标题】:Plotly: How to use multiple datasets with plotly express bar chart?Plotly:如何将多个数据集与 plotly express 条形图一起使用?
【发布时间】:2019-12-09 04:23:05
【问题描述】:

我正在使用 plotly express 和 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()

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

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

【问题讨论】:

  • 我需要帮助... :(
  • 你能把一些合成数据作为你的附加数据吗?基本上你必须合并数据并将一列设置为指标。然后将其作为新跟踪添加到您的布局中。

标签: python plotly data-science data-analysis


【解决方案1】:

如果如您所说,您有一个类似的数据集,那么您无需更改 y 的参数以包含两个数据集。您只需向现有数据集添加另一个维度并调整使用 xcolor 参数的方式。在您的示例中,您将continent 分配给xcolor。因此,您以 两种 方式表示不同的大陆。你不必这样做。您可以使用color 拆分两个数据集,并仍然保留不同大陆上的人口数据。我会告诉你怎么做。


Gapminder 拥有五大洲的数据。下面的 sn-ps 将 gapminder 数据添加到自身,并使用新列 planet 将组合数据集一分为二。这样一来,您就可以拥有两个具有相同大陆的行星。只要两个行星的大陆相同,这将非常有效。

剧情:

代码:

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()

【讨论】:

  • 感谢韦斯特兰。我在这里还是个菜鸟。感谢您的帮助
猜你喜欢
  • 2021-08-18
  • 1970-01-01
  • 2021-10-27
  • 2020-09-05
  • 2021-11-28
  • 2021-09-24
  • 2021-10-25
  • 2019-11-04
  • 2020-10-20
相关资源
最近更新 更多