首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Plotly:如何在Spyder中显示图表?

Plotly:如何在Spyder中显示图表?
EN

Stack Overflow用户
提问于 2016-02-10 20:46:51
回答 2查看 35.4K关注 0票数 18

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

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

代码语言:javascript
复制
<IPython.core.display.HTML object>
<IPython.core.display.HTML object>

在我的代码中有一些错误,或者Spyder的iPython终端仍然不支持这个?

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

代码语言:javascript
复制
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)  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-14 23:14:21

导入plot而不是iplot (并将最后一行从iplot(fig)更改为plot(fig)解决了这个问题,至少在python 3中是这样的:

代码语言:javascript
复制
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)  

但是,您可以执行以下操作,这会稍微简单一些:

代码语言:javascript
复制
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,
)
})
票数 19
EN

Stack Overflow用户

发布于 2020-01-28 16:49:27

如果你想在Spyder中开发你的绘图图形,也许是因为Spyders优秀的变量浏览器,你只需运行fig.show()就可以很容易地显示一个的非交互式图像。请注意,这是针对较新版本的plotly的,您不必担心iplotplotly.offline

如果您希望在浏览器中以全交互版本的形式显示图形,只需运行:

代码语言:javascript
复制
import plotly.io as pio
pio.renderers.default='browser'

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

要切换回在Spyder中生成图形,只需运行:

代码语言:javascript
复制
import plotly.io as pio
pio.renderers.default='svg'

您还可以使用pio.renderers?检查其他选项

代码语言:javascript
复制
Renderers configuration
-----------------------
Default renderer: 'svg'
Available rendere <...> wser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery']

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

下面是一个详细的例子

代码:

代码语言:javascript
复制
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()

图:

系统信息:

代码语言:javascript
复制
Python 3.7.6
Spyder 3.3.1
Plotly 3.2.0
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35315726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档