如何使 Plotly 动画图表显示所有类别(不仅是第一帧中的类别)

克日什托夫·多温戈夫斯基

为了说明我的问题,我使用了他们网站上包含的示例 Plotly 动画图表:

https://plotly.com/python/animations/

原始代码:

df = px.data.gapminder()
px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country",
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])

它显示了所有国家,但是当我们删除有关 1970 年以前的欧洲国家的数据时,欧洲不会显示在图例中。

当我删除有关亚洲国家的数据时,情况更糟。即使它具有剩余大陆的完整数据,它也会更改帧范围。

当它出现在至少一帧中时,如何强制此图表始终在 Legend 中包含一个大陆?

import plotly.express as px
df = px.data.gapminder()
df = df.drop(df[(df.continent == 'Europe') & (df.year < 1970)].index) #here I remove data
px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country",
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])```


  [1]: https://i.stack.imgur.com/5rci1.png
罗伯·雷蒙德

情节动画存在局限性,因为预期尺寸是一致的。这可以通过进行适当的外部连接来实现,以确保所有组合都存在。以您的示例代码为起点,然后使用pandas确保在做之前有尺寸一致性px.scatter()

import pandas as pd
import plotly.express as px
df = px.data.gapminder()
df = df.drop(df[(df.continent == 'Europe') & (df.year < 1970)].index) #here I remove data

# ensure all combinations of attributes are present
key_cols = ["continent", "year", "country"]

df2 = pd.DataFrame(
    index=pd.MultiIndex.from_product(
        [df[col].unique() for col in key_cols], names=key_cols
    )
).merge(df, on=key_cols, how="left")
# an insignificatly small value
df2["pop"] = df2["pop"].fillna(.001)

px.scatter(df2, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country",
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])


在此处输入图像描述

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何强制Plotly动画从最后一帧开始?

如何获取不仅是第一个元素的所有元素的数据

如何使用Plotly在Databricks中渲染图表?

如何从 plotly sunburst 图表中检索值?

UICollectionView。如何在没有动画的情况下将viewController与其他元素(不仅是第一个)一起显示?

Plotly:如何使用plotly.graph_objects和plotly.express在图形中定义颜色?

如何更新所有 Plotly 图表的全局字体颜色?

如何摆脱Plotly图表顶部的空白?

Plotly:如何显示旭日图的图例?

如何使用 plotly 显示这样的图形

Plotly / Dash:如何使行索引唯一?

如何在 Jupyter Notebook 中安装 Plotly

如何在Plotly中旋转图的轴?

如何在Debian中安装R plotly?

导出如何在 plotly DataTable 中工作?

如何更改每个 plotly scatterpolar 类别的 theta 范围

R plotly饼图-如何显示所有长图例?

如何使用 Plotly Choropleth 显示分类变量的所有值

GraphX-如何从vertexId获取所有连接的顶点(而不仅是第一个相邻的顶点)?

Plotly express 动画:hoverlabel 中的更改仅适用于第一帧

我不知道如何使Plotly图表仅显示整数

如何使用 $nextTick 在 vue.js 中渲染 Plotly 图表

Plotly:如何在Plotly中绘制具有渐变颜色的矩形?

Plotly:如何用构面设置plotly.express图表的位置?

Plotly:如何使用plotly express为多组条形图制作动画?

如何在Python中使用Plotly Expess仅显示图例的子集(plotly.express,px)?

如何在Dash(Plotly)或Plotly工具栏的标签中更改语言/区域设置?

Plotly:如何在 plotly.graph_objects (Pie & Bar) 中通过变量/标签定义颜色

Plotly / Plotly-Dash:如何在图形中为每个图例嵌入数字 + delta 指标?