Plotly调用fig.show()无法加载图表:PyCharm中distplot无限缓冲问题
调试Plotly distplot在PyCharm中无限缓冲的方法
我之前也碰到过Plotly图表在PyCharm里加载卡住的情况,结合你的问题,给你几个实用的调试方向,一步步排查:
1. 切换渲染器,绕过默认浏览器加载
Plotly默认会调用系统浏览器渲染,但PyCharm有内置的渲染窗口,也支持离线生成HTML,你可以试试这两种方式:
- 用PyCharm内置渲染器:
import plotly.figure_factory as ff hist_data = [[23740.0, 66440.0, 47890.0, 40632.0, 51778.0, 59966.0, 92433.0, 101595.0, 53863.0, 27279.0, 49620.0, 14981.0], [32566.0, 95661.0, 69957.0, 62255.0, 73688.0, 90606.0, 163077.0, 151885.0, 80432.0, 39790.0, 76275.0, 23061.0], [41811.0, 122388.0, 87849.0, 80795.0, 98960.0, 123870.0, 245555.0, 204934.0, 105540.0, 49233.0, 98183.0, 29583.0]] group_labels = ['1997', '2007', '2017'] fig = ff.create_distplot(hist_data, group_labels, bin_size=.2) fig.show(renderer="pycharm") # 指定用PyCharm内置窗口渲染
- 离线生成HTML文件,手动打开:
import plotly.offline as pyo pyo.plot(fig, filename='distplot_test.html')
生成的文件会在项目根目录,直接双击打开,如果能正常显示,说明问题出在PyCharm和浏览器的联动上。
2. 检查并升级Plotly及依赖版本
版本不兼容是常见的坑,先确认你的Plotly版本:
在PyCharm的Terminal里运行:
pip list | grep plotly
如果版本比较旧,建议升级到稳定版:
pip install --upgrade plotly
同时也可以升级numpy、pandas这些依赖库,避免因依赖版本不匹配导致渲染异常。
3. 排查网络/代理问题,切换离线渲染模式
Plotly默认会加载CDN上的资源,如果PyCharm的代理设置有问题,会导致资源加载失败,进而无限缓冲:
- 先关闭PyCharm的代理:
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,选择No proxy,然后重启PyCharm试试。 - 或者强制Plotly用本地资源渲染(离线模式):
import plotly.io as pio pio.renderers.default = 'svg' # 用SVG格式离线渲染,无需外部资源 fig.show()
4. 简化测试,定位问题根源
先排除distplot本身的问题,跑一个最基础的Plotly图表:
import plotly.graph_objects as go fig = go.Figure(data=[go.Bar(x=[1,2,3], y=[4,5,6])]) fig.show()
如果这个基础图表也卡住,那问题是Plotly在PyCharm的整体配置问题;如果能正常显示,那回到你的distplot代码,试试调大bin_size(比如改成bin_size=10000)——你的数据都是大数值,bin_size=.2会生成极多的bin,导致渲染压力过大,浏览器加载超时。
5. 检查浏览器缓存或更换浏览器
如果还是用默认浏览器渲染,试试清空浏览器的缓存,或者换一个浏览器(比如从Chrome换成Firefox),有时候浏览器缓存的旧资源会导致加载异常。
这些方法应该能帮你逐步定位到问题所在,你可以一个个试过来~
内容的提问来源于stack exchange,提问作者geds133
相关产品推荐
相关产品推荐

