PyCharm中不显示Plotly图表

时间:2018-05-09 09:32:58

标签: python pycharm plotly

如何在Pycharm中显示交互式阴谋图?我运行以下代码:

import plotly.offline as py
import plotly.graph_objs as go

py.init_notebook_mode(connected=True)

data = [go.Bar(
    x=['giraffes', 'orangutans', 'monkeys'],
    y=[20, 14, 23]
)]

py.iplot(data, filename="barplot")

PyCharm中的结果是一个空白字段: Plotly result in Pycharm

在Jupyter Notebook中,此代码提供了一个(正确的)交互式图表作为结果。

更新 来自Embed Plotly HTML in PyCharm IDE的答案对我不起作用。当我使用plot()函数(而不是iplot())时,它会将图表导出到单独的文件中,并在新窗口中打开浏览器。笔记本中的输出是生成的图表的文件名。我想将图表包含在笔记本中并以交互方式使用它,就像在Jupyter Notebook中一样。答案只是将图表导出到单独的html文件中。

5 个答案:

答案 0 :(得分:4)

对于最近发布的Plotly 4.0的主要版本,以下步骤适用于我在PyCharm中使用iPython笔记本在macOs Mojave上使用PyCharm 2019.2。

我相信,这应该可以在其他操作系统以及支持Jupyter笔记本的PyCharm的其他最新版本中使用。

我正在使用conda进行软件包和环境管理,但这也应与其他工具配合使用,例如pip或pipenv(假设orca独立安装)

这是我的步骤:

创建并激活conda环境:

  • $ conda create -n pycharm-plotly python
  • $ conda activate pycharm-plotly

按照plotly.py's GitHub README for Jupyter Notebook Support

安装Plotly 4.0及其依赖项
  • $ conda install -c plotly plotly==4.0.0
  • $ conda install "notebook>=5.3" "ipywidgets>=7.5"

此外,我发现需要“ Plotly Orca”才能起作用:

  • $ conda install -c plotly plotly-orca psutil requests

请注意,对于PyCharm,.ipynb文件扩展名中的“ Configured Server”和“ Managed Server”均适用以下示例代码:

#%%
import plotly.graph_objects as go
import plotly.io as pio

pio.renderers.default = 'png'

fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="A Figure Displayed with fig.show()"
)
fig.show();

enter image description here

附加说明:

  • 我相信PyCharm的“科学”模式下的Plotly绘图渲染不能与“普通” Python文件一起使用,就像Matplotlib或Seaborn一样。

答案 1 :(得分:2)

我希望有人证明我错了,但是您目前试图实现的目标实际上似乎还不可能。我希望您的问题可能仅限于PyCharm的社区版本。据称PyCharm的Scientific模式具有

  

[...]一组出色的功能[...]

因此,我非常确定升级到Professional Edition Version 2019.1.2可以提供Jupyter Notebook支持的任何形式的功能。 las,看来我错了。我尝试了其他各种绘图方法,但没有找到一种可以激发交互式绘图功能的方法。

与我提供的任何证据均相近:

enter image description here

版本确认:

enter image description here


这是从Jupyter Notebook不在您的代码段中进行的PyCharm测试:

情节:

enter image description here


另外,如注释中所建议,在iplot中用plot替换plotly.offline.plot(plot(data), filename='file.html') 会打开网络浏览器并显示您的图。

答案 2 :(得分:1)

如果您只想简单地显示绘图,这里是我仅针对特定绘图向浏览器显示的方式。

import numpy as np
import plotly.express as px

# Plot histogram based on rolling 2 dice
dice_1 = np.random.randint(1,7,5000)
dice_2 = np.random.randint(1,7,5000)
dice_sum = dice_1 + dice_2
# bins represent the number of bars to make
fig = px.histogram(dice_sum, nbins=11, labels={'value':'Dice Roll'},
             title='5000 Dice Roll Histogram', marginal='violin',
            color_discrete_sequence=['green'])

fig.show(renderer="browser")

enter image description here

注意 renderer="browser" 您当然可以将其更改为其他输出。这是他们的列表docs

答案 3 :(得分:0)

plotly版本4开始,您只需在任何.show()上调用go.Figure

import plotly.graph_objects as go
fig = go.Figure( go.Scatter(x=[1,2,3], y=[1,3,2] ) )
fig.show()

答案 4 :(得分:0)

jayBana的答案是正确的,但是如果您想继续在PyCharm中使用.py脚本,则只需将默认渲染器设置为“浏览器”即可获取交互式绘图图:

import plotly.io as pio
pio.renderers.default = "browser"

如此处所述:https://plot.ly/python/renderers/