Seaborn绘制泰坦尼克数据集热力图时n_siblings_spouses报错如何解决
问题根因
你开启了Matplotlib的LaTeX渲染模式(rc('text', usetex=True)),而特征名n_siblings_spouses包含下划线_,该符号在LaTeX语法中属于数学模式专用的下标标记,直接在普通文本中使用会触发LaTeX语法报错,和Seaborn、特征本身的数据逻辑没有关联。
解决方案
方案1:保留LaTeX渲染,不删除特征(推荐)
仅需在绘图环节临时转义相关性矩阵的列名、索引中的下划线即可,无需修改原始数据集,修改后的heatMap函数如下:
def heatMap(df): # 创建相关性矩阵 corr = df.corr() # 转义下划线适配LaTeX语法 corr.columns = corr.columns.str.replace('_', r'\_') corr.index = corr.index.str.replace('_', r'\_') # 剩余代码保持原有逻辑不变 fig, ax = plt.subplots(figsize=(10, 10)) colormap = sns.diverging_palette(220, 10, as_cmap=True) sns.heatmap(corr, cmap=colormap, annot=True, fmt=".2f") plt.xticks(range(len(corr.columns)), corr.columns) plt.yticks(range(len(corr.columns)), corr.columns) plt.show()
方案2:无需LaTeX渲染可直接关闭配置
如果你的绘图没有强制使用LaTeX渲染的需求,直接把代码中的rc('text', usetex=True)改为rc('text', usetex=False)即可,不需要修改其他逻辑。
内容的提问来源于stack exchange,提问作者GEBRU
相关产品推荐
相关产品推荐

