You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly绘图标注数组KG值时触发layout.title类型报错如何解决

问题根因

报错触发的直接原因:Mittelspannung()返回的KG是列表类型(从报错信息可见为单元素列表[-0.408]),但Plotly布局接口的title_text属性仅接受字符串、可隐式转换为字符串的数值类型,传入列表时会直接触发类型校验失败。
另外原代码中fig.parallel_coordinates()属于无效调用:你当前创建的是直角坐标系散点图,平行坐标图接口和当前画布不匹配,该行无法实现标注KG的效果,可直接删除。

解决方案

根据KG的展示位置需求,二选一即可:

方案1:KG值展示在图表标题中

从KG列表中取出目标数值,格式化为字符串后传入标题参数即可,修改对应代码段:

# 提取KG列表中的数值,单元素列表直接取索引0即可
kg_value = KG[0]
fig.update_layout(
    height=800,
    # 可自行调整小数位数、标题文本格式
    title_text=f"应力幅值-平均应力关系曲线 (KG = {kg_value:.3f})"
)
# 删除无效的平行坐标调用行

方案2:KG值标注在绘图区域内

如果需要在图内空白位置展示KG参数,可通过注释接口添加带边框的标注:

kg_value = KG[0]
# x、y为相对画布的位置参数,取值范围0-1,可根据实际图表效果调整
fig.add_annotation(
    x=0.02,
    y=0.98,
    xref="paper",
    yref="paper",
    text=f"KG = {kg_value:.3f}",
    showarrow=False,
    bordercolor="#333",
    borderwidth=1,
    borderpad=5,
    bgcolor="white"
)
fig.update_layout(height=800, title_text="应力幅值-平均应力关系曲线")
修正后完整代码参考
CLE,Z,K,Rmv,SigS,M,N,SigD,SigG,M2,SigM,σ_amp_BauteilTAES,σ_amp_BauteilPES,KG,SigA1,SigN2M,kN2E6,SigA,slope,σamp10,σmean10,σamp100,σmean100,σamp1000,σmean1000,σamp10000,σmean10000,σamp100000,σmean100000 = Mittelspannung()

df['SigA1'] = SigA1
df['SigM'] = SigM
df['SigN2M'] = SigN2M
df['kN2E6'] = kN2E6
df['SigA'] = SigA
df['slope'] = slope
print(df)

fig = make_subplots(specs=[[{"secondary_y": True}]])
fig.update_xaxes(title_text="Mean Stress [MPa]")
fig.update_yaxes(title_text="Stress Amplitude [MPa]")
fig.add_trace(go.Scatter(x=SigM, y=SigN2M, name="N = 2M"))
fig.add_trace(go.Scatter(x=SigM[1:29], y=SigA1[1:29], name="N = 1"))

kg_val = KG[0]
fig.update_layout(
    height=800,
    title_text=f"应力关系曲线 (KG = {kg_val:.3f})"
)

fig.show()

提示:如果后续Mittelspannung()返回的KG列表包含多个元素,可遍历取值后拼接为完整字符串再传入,只要最终传入文本类参数的是字符串类型,就不会触发该类类型报错。

内容的提问来源于stack exchange,提问作者Pavan Sai Jagarlamudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:27:46