Plotly:如何在 Spyder 中显示图表?
Plotly: How to display charts in Spyder?
自 2015 年 11 月起,plotly 是开源的,可用于 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>
我的代码有问题,或者 iPython Spyder 的终端仍然不支持这个?
这里是示例代码(取自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)
导入 plot 而不是 iplot(并将最后一行从 iplot(fig) 更改为 plot(fig) 解决了问题,至少在 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)
但是您可以执行以下操作,这稍微容易一些:
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,
)
})
如果你想在 Spyder 中开发你的情节人物,也许是因为 Spyders 精湛的变量浏览器,你可以轻松地显示 非交互式图像 运行宁fig.show()
。请注意,这是针对较新版本的 plotly,您不必担心 iplot
和 plotly.offline
.
如果您想在浏览器中以 完全交互的 版本显示您的图形,只需 运行:
import plotly.io as pio
pio.renderers.default='browser'
现在您的图形将显示在您的默认浏览器中。
要切换回在 Spyder 中生成您的图形,只需 运行:
import plotly.io as pio
pio.renderers.default='svg'
您也可以使用 pio.renderers?
:
检查其他选项
Renderers configuration
-----------------------
Default renderer: 'svg'
Available rendere <...> wser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery']
您可以在 Setting the default renderer
下找到更多详细信息 here
这里有一个详细的例子
代码:
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()
剧情:
系统信息:
Python 3.7.6
Spyder 3.3.1
Plotly 3.2.0
自 2015 年 11 月起,plotly 是开源的,可用于 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>
我的代码有问题,或者 iPython Spyder 的终端仍然不支持这个?
这里是示例代码(取自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)
导入 plot 而不是 iplot(并将最后一行从 iplot(fig) 更改为 plot(fig) 解决了问题,至少在 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)
但是您可以执行以下操作,这稍微容易一些:
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,
)
})
如果你想在 Spyder 中开发你的情节人物,也许是因为 Spyders 精湛的变量浏览器,你可以轻松地显示 非交互式图像 运行宁fig.show()
。请注意,这是针对较新版本的 plotly,您不必担心 iplot
和 plotly.offline
.
如果您想在浏览器中以 完全交互的 版本显示您的图形,只需 运行:
import plotly.io as pio
pio.renderers.default='browser'
现在您的图形将显示在您的默认浏览器中。
要切换回在 Spyder 中生成您的图形,只需 运行:
import plotly.io as pio
pio.renderers.default='svg'
您也可以使用 pio.renderers?
:
Renderers configuration
-----------------------
Default renderer: 'svg'
Available rendere <...> wser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery']
您可以在 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()
剧情:
系统信息:
Python 3.7.6
Spyder 3.3.1
Plotly 3.2.0