如何将 plotly 表达图保存到 html 或静态图像文件中?

rou*_*dan 5 python plotly plotly-python

但是,我觉得用 plotly.express 保存图形非常棘手。

如何将 plotly.express 或 plotly plot 保存到单个 html 或静态图像文件中?任何人都可以帮忙吗?

ves*_*and 18

更新的答案:

使用较新版本的 plotly,Python中的静态图像 pxport轻而易举。只需确保使用以下方法安装万花筒:

pip install -U kaleido
Run Code Online (Sandbox Code Playgroud)

或者,对于 Anaconda:

conda install -c conda-forge python-kaleido
Run Code Online (Sandbox Code Playgroud)

然后运行

fig.write_image("yourfile.png") 
Run Code Online (Sandbox Code Playgroud)

诸如.jpeg和 之.pdf类的文件类型也是可用选项。

生成单个 html 文件仍然很容易:

只需使用 plotly.offline.plot(fig, filename='C:/plotlyplots/canada_offline.html')

这将为您提供一个lifeExp在所需文件夹中具有名称的 plotly express 条形图的 html 文件。记住import plotly,不仅import plotly.express as px

完整代码:

# imports
import plotly
import plotly.express as px

# data
df = px.data.gapminder().query("continent=='Oceania'")

# plotly express bar chart
fig = px.line(df, x="year", y="lifeExp", color='country')

# html file
plotly.offline.plot(fig, filename='C:/plotlyplots/lifeExp.html')
Run Code Online (Sandbox Code Playgroud)

阴谋:

在此处输入图片说明

文件显示在文件夹中:

在此处输入图片说明

从这里您可以使用任何浏览器或任何其他方式打开文件。

这是使用显示的内容 Notepad++

在此处输入图片说明

如果您不介意一些体力劳动,您可以.png使用工具栏保存一个版本:

在此处输入图片说明


静态图像的旧答案:

自动生成静态图像有点棘手。

如果您更喜欢 html中的静态图像导出,请查看Python中的静态图像导出

我喜欢使用包括orca可以生成各种图像文件的方法。我还没有发现任何其他方式来安装它比其他NPM一起安装的node.js。如果你是为了,你只有去运行下面得到它运行起来(我在Windows上):

npm install -g electron@1.8.4 orca

pip install psutil requests
Run Code Online (Sandbox Code Playgroud)

然后您可以更改上面代码段中的最后一行fig.write_image("C:/plotlyplots/lifeExp.png")以生成一个.png文件。


Aad*_*hah 7

添加 @vestland 关于保存到 HTML 的答案,根据文档执行此操作的另一种方法是:

import plotly.express as px

# a sample scatter plot figure created
fig = px.scatter(x=range(10), y=range(10))
fig.write_html("path/to/file.html")
Run Code Online (Sandbox Code Playgroud)

您可以在此处进一步阅读(控制 HTML 文件的大小): Interactive HTML Export in Python


小智 5

在Python中导出静态图像

短篇小说:pip install kaleido,那么fig.write_image(<output_filename>)

我偶然发现了这一点,因为我也在寻找如何将绘图图形导出到静态图像的方法。我意识到安装 orca 并使其工作并不那么容易,但好消息是他们实际上制作了这个名为kaleido的软件包,更容易安装。从这些链接找到它:


小智 5

不知何故,上述 .html 文件的解决方案不起作用,但我发现

from pathlib import Path

with Path("myfile.html").open("w") as f:
    f.write(fig.to_html())
Run Code Online (Sandbox Code Playgroud)

工作得很好。