问题描述
写了一段代码,例如:
import plotly.express as px
import plotly
import pandas as pd
stages = ["Website visit", "Downloads", "Potential customers", "Requested price", "invoice sent"]
df_mtl = pd.DataFrame(dict(number=[39, 27.4, 20.6, 11, 3], stage=stages))
df_mtl['office'] = 'Montreal'
df_toronto = pd.DataFrame(dict(number=[52, 36, 18, 14, 5], stage=stages))
df_toronto['office'] = 'Toronto'
df = pd.concat([df_mtl, df_toronto], axis=0)
fig = px.funnel(df, x='number', y='stage', color='office')
fig.show()
然而,运行之后没有任何显示。
解决方法
为了解决该无输出的问题,目前找到两个方法:
1、加一行代码让其在默认浏览器里显示。
需要在fig.show() 后添加如下代码:
plotly.offline.plot(fig)
运行后会生成temp-plot.html 文件并在浏览器中打开 ,如下:
2、觉得打开浏览器比较讨厌。可以通过修改渲染器配置来设置显示途径。
设置代码如下:
import plotly.io as pio
pio.renderers.default = "notebook_connected"
这个参数(“notebook_connected”)可以根据自己的需要设置。可以选择的渲染器配置参数如下:
渲染器配置
Default renderer: 'vscode'
Available renderers:
['plotly_mimetype', 'jupyterlab', 'nteract', 'vscode',
'notebook', 'notebook_connected', 'kaggle', 'azure', 'colab',
'cocalc', 'databricks', 'json', 'png', 'jpeg', 'jpg', 'svg',
'pdf', 'browser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery', 'sphinx_gallery_png']
比如我设置成了:
pio.renderers.default = "png"
我就可以在控制台中直接显示了。如下图:
如果大家还有什么更好的方法,欢迎交流。O(∩_∩)O~~