我正在使用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()
但是,我还希望为每个条添加另一个数据集作为比较。理想情况下,我希望得到如下结果:
对于每个条形中的结果,我有一个数据集作为“总数”。 例如,对于第一个条形,“黄色一个”是总数,“蓝色一个”是目标数量,只是我希望将它们组合在同一个图中。但该示例仅显示单个数据集。我想知道如何更改“y”的参数以包含两个数据集?
最佳答案
如果,正如您所说,您有一个相似的数据集,那么您不需要更改 y
的参数来包含两个数据集。您只需向现有数据集添加另一个维度并调整使用 x
和 color
参数的方式即可。在您的示例中,您将 大陆
分配给 x
和 color
。因此,您以两种方式指示不同的大陆。而你不必这样做。您可以使用 color
分割两个数据集,同时仍保留不同大陆上的人口数据。我将向您展示如何做到这一点。
Gapminder
拥有所有五大洲的数据。以下代码片段将 gapminder 数据添加到自身,并使用新列 planet
将组合数据集一分为二。这样你就会拥有两个拥有相同大陆的行星。只要两个行星有相同的大陆,这就会完美地工作。
plotly :
代码:
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/