在spyder中可视化图表

Gab*_*iel 4 plot python-2.7 spyder plotly

自2015年11月以来,情节是开源的,可用于python.https://plot.ly/javascript/open-source-announcement/

当试图离线做一些图时,这些工作在iPython Notebook(版本4.0.4)但是如果我尝试在Spyder(版本2.3.8)中运行它们,我只是得到以下输出:

<IPython.core.display.HTML object>
<IPython.core.display.HTML object>
Run Code Online (Sandbox Code Playgroud)

我的代码有问题,或者Spyder的iPython终端仍然不支持这个?

以下是示例代码(摘自https://www.reddit.com/r/IPython/comments/3tibc8/tip_on_how_to_run_plotly_examples_in_offline_mode/)

from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
from plotly.graph_objs import *
init_notebook_mode()

trace0 = Scatter(
    x=[1, 2, 3, 4],
    y=[10, 11, 12, 13],
    mode='markers',
    marker=dict(
        size=[40, 60, 80, 100],
    )
)
data = [trace0]
layout = Layout(
    showlegend=False,
    height=600,
    width=600,
)

fig = dict( data=data, layout=layout )

iplot(fig)  
Run Code Online (Sandbox Code Playgroud)

ves*_*and 24

如果您想在 Spyder 中开发您的绘图图形,也许是因为 Spyder 出色的变量资源管理器,您只需运行fig.show(). 请注意,这是针对较新版本的 plotly,您不必担心iplotplotly.offline。如果您想将图形发送到浏览器以获取交互式版本,只需运行:

import plotly.io as pio

pio.renderers.default='browser'
Run Code Online (Sandbox Code Playgroud)

现在您的图将显示在您的默认浏览器中

要切换回 Spyder,只需运行:

import plotly.io as pio

pio.renderers.default='svg'
Run Code Online (Sandbox Code Playgroud)

您也可以使用pio.renderers?以下方法检查其他选项:

Renderers configuration
-----------------------
Default renderer: 'svg'
Available rendere <...> wser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery']
Run Code Online (Sandbox Code Playgroud)

您可以下面找到更多详细信息Setting the default renderer

这是一个详细的例子

代码:

import plotly.graph_objects as go

import plotly.io as pio
#pio.renderers.default = 'svg'
pio.renderers.default = 'browser'

x = ['Product A', 'Product B', 'Product C']
y = [20, 14, 23]

fig = go.Figure(data=[go.Bar(
            x=x, y=y,
            text=y,
            textposition='auto',
        )])
fig.show()
Run Code Online (Sandbox Code Playgroud)

阴谋:

在此处输入图片说明

系统信息:

Python 3.7.6
Spyder 3.3.1
Plotly 3.2.0
Run Code Online (Sandbox Code Playgroud)

  • 默认输出到浏览器为我节省了时间(使用 Spyder 5)。谢谢你! (3认同)

小智 8

进口替代情节IPLOT(和改变从IPLOT(图最后一行来绘制图)解决了这个问题,至少在Python 3:

from plotly.offline import download_plotlyjs, init_notebook_mode,  plot
from plotly.graph_objs import *
init_notebook_mode()

trace0 = Scatter(
    x=[1, 2, 3, 4],
    y=[10, 11, 12, 13],
    mode='markers',
    marker=dict(
        size=[40, 60, 80, 100],
    )
)
data = [trace0]
layout = Layout(
    showlegend=False,
    height=600,
    width=600,
)

fig = dict( data=data, layout=layout )

plot(fig)  
Run Code Online (Sandbox Code Playgroud)

但相反,您可以执行以下操作,这稍微容易一些:

import plotly
import plotly.graph_objs
plotly.offline.plot({
"data": [
    plotly.graph_objs.Scatter(    x=[1, 2, 3, 4],
    y=[10, 11, 12, 13], mode='markers',
    marker=dict(
        size=[40, 60, 80, 100]))],
"layout": plotly.graph_objs.Layout(showlegend=False,
    height=600,
    width=600,
)
})
Run Code Online (Sandbox Code Playgroud)