请注意,这是我上一篇文章的编辑版本。
我正在尝试格式化在Seaborn中使用relplot生成的子图的标题。我使用了set_titles选项,并包含了{col_name}元素。我想在{col_name}之前加上一个动态字符串,该字符串来自格式化字符串数组"plotvarnames“(例如,"I_{bs}="),位于{col_name}之前。以下代码行导致错误消息"name 'col_name‘is not defined":
plotvars=['nis','Ds','Ibs','kVssH','kVssL','kHL']
plotvarstrings=["r'$\nu_s$'","r'$D_s$'","r'$I_{bs}$'","r'$k_{vSSH}$'","r'$k_{vSSL}$'","r'$k_{HL}$'"]
for i,vname in enumerate (plotvars): g=sns.relplot(x="xvar",y="yvar",col=vname,hue="huevar",col_wrap=3,kind="scatter",palette=["b","r"],data=df,legend="full").set_titles(f"plotvarstrings[i]={col_name}")如何获得合成的格式化字符串?
发布于 2020-05-26 00:11:46
啊哈,我想通了:你需要摆脱括号。将plotvarstrings更改为下面的值(请注意两个{{和}}
plotvarstrings=['r[$\nu_s$]','r[$D_s$]','r'$I_{{bs}}$]','r[$k_{{vSSH}}$]',
'r[$k_{{vSSL}}$]','r[$k_{{HL}}$]']然后你可以这样做:
.set_titles(plotvarstrings[i] + "={col_name}")https://stackoverflow.com/questions/61997694
复制相似问题