plotly里面默认存储的是html,我现在想把图片存成png或者pdf的格式。这个我曾经试过,但是失败了,主要的问题在于kaleido包的安装出了问题,最终导致fig.write_image()
总是报错,今天这个错误被我解决了
首先出现的错误是
ValueError: Failed to start Kaleido subprocess ./bin/kaleido: No such file or directory
最终解决的办法是,不要安装最新版本的kaledio,使用
下面的语句安装kaleido
pip install --upgrade "kaleido==0.1.*"
记录一下我的环境的版本
最终的结果如下
测试代码
# imports
import plotly
import plotly.express as px
# data
df = px.data.gapminder().query("continent=='Oceania'")
#print(df.head())
# plotly express bar chart
fig = px.line(df, x="year", y="lifeExp", color='country')
# html file
#plotly.offline.plot(fig, filename='./lifeExp.html')
fig.write_image("./lifeExp.png")
print("done")
补充一点,如果我想保存成高分辨率的png图像,那么应该怎么设置呢
import plotly.io as pio
pio.write_image(fig, save_dir+'./sanky_plot.png',scale=5, width=800, height=800)
可以看到左边的图是40004000分辨率的,而右边的图是800800的,稍微放大一点就可以看到差异,需要注意