使用Plotly在Jupyter Notebook绘制热力图失败,输出代码文本求助
在Jupyter Notebook中用Plotly绘制热力图失败的问题排查与解决
我帮你分析下这个问题哈,你遇到的这种输出一堆代码文本而不是热力图的情况,大概率是Plotly离线模式在Jupyter Notebook里的渲染配置出了问题,再加上pandas版本的小兼容问题,具体拆解如下:
问题原因拆解
- Plotly离线模式未初始化:在Jupyter环境里使用Plotly offline时,必须先初始化notebook渲染模式,否则Plotly没法在单元格里渲染出交互式图表,只会输出原始的字典代码
as_matrix()已被弃用:新版本的pandas里,DataFrame.as_matrix()方法已经被移除了,改用to_numpy()或者.values来获取数值矩阵,这个方法调用出错也可能导致图表渲染失败
修复后的完整代码
把你的代码改成这样试试:
import plotly.offline as py import plotly.graph_objs as go import pandas as pd import numpy as np # 关键步骤:初始化Plotly的notebook渲染模式 py.init_notebook_mode(connected=True) # 假设dfs是你已经加载好的有效DataFrame # 替换已弃用的as_matrix()为to_numpy() corr_matrix = dfs.corr(method='pearson').to_numpy() heatmap = go.Heatmap( z=corr_matrix, x=dfs.columns, y=dfs.columns, colorbar=dict(title='Pearson Coefficient'), ) layoutheat = go.Layout(title="变量相关性热力图") figheat = go.Figure(data=[heatmap], layout=layoutheat) py.iplot(figheat)
额外注意事项
- 确保你的
dfs是有效的数值型DataFrame,如果存在非数值列,需要先过滤掉,否则corr()计算会出错 - 如果还是有问题,可以检查下Plotly和pandas的版本,尽量保持版本兼容:Plotly建议用4.x以上版本,pandas用1.x以上版本
内容的提问来源于stack exchange,提问作者Delphian
相关产品推荐
相关产品推荐

