我尝试制作一个绘图并将其保存为 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()
时,它不会抛出任何错误并导出绘图。有人可以解释一下为什么它会这样吗?我之前做的类似情节似乎没有问题。
我在互联网上搜索,但遗憾的是没有找到任何有用的东西。