带有 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 的动画饼图的主要内容,如果未能解决你的问题,请参考以下文章

从 javascript 将迷你图饼图添加到 Jquery DataTable

jquery实现柱形图饼图等

OpenGL——折线图柱状图饼图绘制

数据可视化分析(柱状图饼图折线图雷达图)

echart 折线图柱状图饼图环形图颜色修改

Android画折线图柱状图饼图(使用achartengine.jar)