如何导出/保存用plotly制作的动画气泡图?

时间:2019-04-01 17:18:29

标签: animation charts plotly

如何导出/保存用plotly制作的动画气泡图? (例如,它是通过下面的链接制作的)我希望将其以礼物或某种格式的分辨率更好。预先谢谢你。

https://www.kaggle.com/aashita/guide-to-animated-bubble-charts-using-plotly

2 个答案:

答案 0 :(得分:0)

没有可能这样做。请使用givemaker,并将动画中的每个步骤保存为一张图片,以便以后将它们组合为gif。 Follow this source。情节here提供了有关如何创建动画的进一步说明。

基本方法是将此逻辑集成到您的绘图代码的动画处理中:

 import ImageSequence
 import Image
 import gifmaker
 sequence = []

 im = Image.open(....)

 # im is your original image
 frames = [frame.copy() for frame in ImageSequence.Iterator(im)]

 # write GIF animation
 fp = open("out.gif", "wb")
 gifmaker.makedelta(fp, frames)
 fp.close()

如果您可以提供实际的代码,则可以为您的问题提供更详细的答案。 :)

答案 1 :(得分:0)

另一种可能性是使用 gif 库,它与 matplolib、altair 和 plotly 一起使用,而且非常简单。在这种情况下,您不会使用情节动画。相反,您定义了一个函数,该函数返回一个可绘制的无花果并构造一个无花果列表作为参数传递给 gif。

您的代码如下所示:

import random
import plotly.graph_objects as go
import pandas as pd
import gif

# Pandas DataFrame with random data
df = pd.DataFrame({
    't': list(range(10)) * 10,
    'x': [random.randint(0, 100) for _ in range(100)],
    'y': [random.randint(0, 100) for _ in range(100)]
})

# Gif function definition
@gif.frame
def plot(i):
    d = df[df['t'] == i]
    fig = go.Figure()
    fig.add_trace(go.Scatter(
        x=d["x"],
        y=d["y"],
        mode="markers"
    ))
    fig.update_layout(width=500, height=300)
    return fig

# Construct list of frames
frames = []
for i in range(10):
    frame = plot(i)
    frames.append(frame)

# Save gif from frames with a specific duration for each frame in ms
gif.save(frames, 'example.gif', duration=100)