【问题标题】:plotly.graph_objects is saving old infoplotly.graph_objects 正在保存旧信息
【发布时间】:2021-12-03 16:23:06
【问题描述】:

我使用以下示例代码在 python 中创建了一个图表。

import plotly.graph_objects as go

from matplotlib.pyplot import figure

image_path = "C:/Users/Me/Pictures/x.png"

fig = go.Figure(go.Indicator(...))

fig.write_image(image_path)

当我用相同的代码创建新图像时,旧数据仍然存在于某处,并与旧数据而不是新数据一起保存。

我尝试使用fig.close(),但收到错误'Figure' object has no attribute 'close'。我也尝试过使用plt.close('all'),但没有成功。

我尝试查看ploty.graph_objects 页面,但找不到如何关闭图像或使用新数据保存新图像。

我还尝试在每次运行后使用 fig.data = []fig.layout = {} 清除图形数据/布局

我也试过fig.show(),它在循环图像时确实显示了正确的图像,但保存的图像仍然显示旧数据。

关于如何使用新数据从 plotly 中保存图形对象的任何想法?

【问题讨论】:

  • 你为什么要混合 matplotlib 和 plotly?

标签: python matplotlib plotly


【解决方案1】:
  • 循环生成四个指标
  • 保存到文件名 x.pngx_.png
  • x.pngx_750.png 是一样的,所以文件肯定会被覆盖
import plotly.graph_objects as go
from pathlib import Path

p = Path.cwd().joinpath("indicator_images")
if not p.is_dir():
    p.mkdir()

for v in [300,450,600,750]:
    fig = go.Figure(go.Indicator(
        mode = "gauge+number",
        value = v,
        title = {'text': "Speed"},
        domain = {'x': [0, 1], 'y': [0, 1]}
    ))
    fig.write_image(p.joinpath("x.png"))
    fig.write_image(p.joinpath(f"x_{v}.png"))

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多