如何通过运行脚本来离线保存绘图

时间:2018-09-28 06:52:59

标签: python plotly

我在jupyter笔记本中使用以下代码。

import pandas as pd
import numpy as np
%matplotlib inline

from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot

print(__version__)

import cufflinks as cf
init_notebook_mode(connected=True)
cf.go_offline()

df2 = pd.DataFrame({'Category':['A','B','C'],'Values':[22,33,45]})
df2.iplot(kind='bar',x='Category',y='Values', asImage=True, filename='bar')

它提供了要在notebook中运行时要保存的图像,我将此代码保存在了bar.py中,然后运行了python bar.py,这给了我一个错误You must be authenticated to generate an image via json.

我想运行脚本,将条形图保存为同一位置的图像,我不能使用notebook,因为该脚本将自动运行。

2 个答案:

答案 0 :(得分:1)

Plotly图是使用HTML + Javascript生成的。在Jupyter Notebook中运行时,您已经在浏览器中运行的Web应用程序中,因此可以直接呈现它们。

在命令行上运行时,它可以为您生成带有图形的HTML文件,但是您需要在浏览器中将其打开以呈现它。

Plotly Offline文档页面对此进行了说明。那里的文字说,只有在Notebook中运行时才能保存图像。似乎有一种使用在线模式生成图像的方法-您将需要一个Plotly帐户和网络访问权限。

您可能需要考虑使用其他绘图库来进行自动脱机工作,这不需要网络访问或运行HTML用户代理。

答案 1 :(得分:0)

尝试了此https://plot.ly/python/static-image-export/并哇!

尽管我不得不与逆戟鲸作斗争。

import pandas as pd
import numpy as np

%matplotlib inline

from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
import plotly.io as pio


print(__version__)

import cufflinks as cf
init_notebook_mode(connected=True)
cf.go_offline()


fig = go.Figure()
fig.add_bar(x=df2['Category'],y=df2['Values'])

iplot(fig)
pio.write_image(fig, 'fig1.png')