带有 Plotly 的动画饼图
Posted
技术标签:
【中文标题】带有 Plotly 的动画饼图【英文标题】:Animated pie chart with Plotly 【发布时间】:2021-03-25 11:59:19 【问题描述】:我将以下数据存储在 pandas 数据框中。
import pandas as pd
values = [[4500, 2500, 1053, 500],
[872, 2389, 819, 765],
[293, 1668, 873, 778],
[1656, 861, 6137, 698]]
df = pd.DataFrame(values, columns=['A', 'B', 'C', 'D'])
print(df.to_markdown())
Output:
| | A | B | C | D |
|---:|-----:|-----:|-----:|----:|
| 0 | 4500 | 2500 | 1053 | 500 |
| 1 | 872 | 2389 | 819 | 765 |
| 2 | 293 | 1668 | 873 | 778 |
| 3 | 1656 | 861 | 6137 | 698 |
我可以使用 plotly(使用 px.pie 或 go.Pie)绘制单行的饼图。这里我绘制了最后一行的数据。
import plotly.graph_objects as go
fig = go.Figure(data=[go.Pie(labels=df.columns, values=df.iloc[-1])])
fig.show()
有没有一种方法可以创建一个动画饼图,该饼图将逐行显示每一行的数据。似乎 plotly express 支持散点图和条形图的动画,但我找不到与饼图相关的任何内容。 注意:我只是在寻找帮助来做这件事。我确实知道如何使用 matplotlib 做到这一点。
【问题讨论】:
从我在 Plotly 网页上阅读的内容来看,通过 Plotly Express 制作的动画仅支持线、散点和条形聊天(而不是饼图)。你可以阅读更多关于 Plotly 动画 documentation 和 forum 【参考方案1】:可以在 R 中使用当前版本的 plotly,我不了解 python 语法,但在定义变量时指定变量“frame”可能会起作用。在 R 中,框架定义了随框架变化的尺寸,并且此功能可能会延续。我已经成功使用了这个,我从https://plotly.com/r/animations/得到了最初的建议
它的外观
fig = go.Figure(data=[go.Pie(labels=df.columns, values=df.iloc[-1])]
,frame= row
)
希望 plotly 在两种语言中的工作方式有足够的交叉点,以便对此有所帮助。
【讨论】:
以上是关于带有 Plotly 的动画饼图的主要内容,如果未能解决你的问题,请参考以下文章