尝试导出绘图时,Plotly 图形对象会返回错误,尽管绘制的图形没有任何错误

问题描述 投票:0回答:1

我尝试制作一个绘图并将其保存为 svg。当我运行绘制绘图的代码时(我使用的是 Jupyter),它绘制了绘图,并且一切正常。但是,如果我尝试将其保存为 svg,程序将返回 ValueError:

ValueError:转换失败,错误代码为 525:无法在“Node”上执行“insertBefore”:新的子元素包含父元素。

这是运行时没有任何错误的代码部分:

x_values = [2.71152, 1.80768, 0.90384, 0.90384, 0.67788]
y_values = [430.28256, 503.08416, -235.5592, 626.42848, 752.61792]

x_new = [2.71152, 1.80768, 0.90384, 0.67788]
y_new = [430.28256, 503.08416, 626.42848, 752.61792]

a, b, r_val, p_val, slope_err = stats.linregress(x_new, y_new)
yfit = [a * xi + b for xi in x_new]

fig = go.Figure()
fig.add_traces([go.Scatter(name = "Data", 
                           x = x_values, 
                           y = y_values, 
                           mode = "markers+text", 
                           text = ["", r"$y = -144.5 x + 798.5$", "", ""],
                           textposition = "bottom left"), 
              go.Scatter(name = "Fit-Line", 
                           x = x_new, 
                           y = yfit, 
                           mode = "lines")])
fig.update_layout(font = dict(family = "CMU Serif", size = 16),
                  template = "simple_white", 
                  width = 900,
                  xaxis_title = r"$m \cdot (T_f - T_i), \text{ kg K}$",
                  yaxis_title = r"$Q_c, \text{ J}$")
fig.show()

这是抛出错误的行:

fig.write_image("images/part-2-2-plot.svg")

它还说“无法从输出路径‘{file}’推断图像类型。”但是,我检查了所有内容,文件夹中存在“images”目录,但问题仍然存在。如果我尝试导出到

.png
而不是
.svg
,也会出现同样的问题。

我尝试删除部分代码以查看哪一行弄乱了所有内容。发现当我从

xaxis_title
方法中删除属性
yaxis_title
fig.update_layout()
时,它不会抛出任何错误并导出绘图。有人可以解释一下为什么它会这样吗?我之前做的类似情节似乎没有问题。

我在互联网上搜索,但遗憾的是没有找到任何有用的东西。

python plotly export plotly.graph-objects
1个回答
0
投票

数学样式轴标题属性(即

xaxis_title
yaxis_title
)和
simple_white
模板(以及源中的错误)之间似乎存在冲突。例如,将模板更改为
plotly_dark
,您将得到以下结果:

另一个证据是将标题从数学风格更改为简单文本也可以解决该错误,即通过保留

simple_white
模板。

© www.soinside.com 2019 - 2024. All rights reserved.