如何在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")
在Jupyter Notebook中,此代码提供了一个(正确的)交互式图表作为结果。
更新
来自Embed Plotly HTML in PyCharm IDE的答案对我不起作用。当我使用plot()
函数(而不是iplot()
)时,它会将图表导出到单独的文件中,并在新窗口中打开浏览器。笔记本中的输出是生成的图表的文件名。我想将图表包含在笔记本中并以交互方式使用它,就像在Jupyter Notebook中一样。答案只是将图表导出到单独的html文件中。
答案 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();
附加说明:
答案 1 :(得分:2)
我希望有人证明我错了,但是您目前试图实现的目标实际上似乎还不可能。我希望您的问题可能仅限于PyCharm的社区版本。据称PyCharm的Scientific模式具有
[...]一组出色的功能[...]
因此,我非常确定升级到Professional Edition Version 2019.1.2可以提供Jupyter Notebook支持的任何形式的功能。 las,看来我错了。我尝试了其他各种绘图方法,但没有找到一种可以激发交互式绘图功能的方法。
与我提供的任何证据均相近:
版本确认:
这是从Jupyter Notebook不在您的代码段中进行的PyCharm测试:
情节:
另外,如注释中所建议,在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")
注意 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"