我在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
,因为该脚本将自动运行。
答案 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')