查看原文
其他

Plotly中如何保存jpeg等图片?

Lemon Python数据之道 2022-04-24


作者:Lemon

来源:Python数据之道


Plotly中如何保存jpeg等图片?

大家好,我是 Lemon 。
如本文开头的专辑所示,在过去的一段时间里,我写了一些用 Python 的交互式可视化工具 Plotly 来进行数据分析的文章。
有不少同学都问到如何保存 Plotly 中的图片,今天 Lemon 来跟大家分享下如何保存静态图片,比如 png、jpeg、svg 等。

保存静态图片的方法

在 Plotly 中保存静态图片,需要安装 3 个依赖包才可以,分别是 orca 、 psutil 、 和 requests 。
在安装上述依赖包时,需要用到 conda 管理工具,安装命令如下:
  1. conda install -c plotly plotly-orca==1.2.1 psutil requests

正常情况下,通过上述命令后,应该会安装成功。
我自己安装的时候,发现有因为网络延迟原因,安装失败的情况。如果遇到安装失败,可以多试几次,或者更换网络。
上面的安装命令中, orca 需要通过 conda 管理工具来安装。
psutil 和 requests 可以通过 pip 命令来安装:
  1. pip install psutil requests

在上述依赖包安装成功后,我们可以使用 write_image 方法来保存静态图片,支持的图片格式包括 png、jpeg、svg、webp、pdf、eps 等。
下面,Lemon 通过一个项目案例来给大家展示下静态图片的保存。

项目案例演示

这个案例,主要是通过获取标普500指数数据,对标普500的走势进行可视化,并将展示结果的图片进行保存。
本文的数据来自开源项目 yfinance,大家在运行案例中的代码时,需要先安装 yfinance,安装命令如下:
  1. pip install yfinance

本项目案例是在 vs code,Pycharm 等环境中运行,Python 环境版本及其他主要工具如下:
  • Python 3.7

  • pandas version: 1.0.3

  • plotly version: 4.5.0

本项目案例的代码如下:
  1. # -*- coding: utf-8 -*-

  2. """

  3. @Author: Lemon

  4. @出品:Python数据之道

  5. @Homepage: liyangbit.com

  6. """


  7. import pandas as pd

  8. import plotly.graph_objs as go

  9. import plotly

  10. from datetime import datetime

  11. import yfinance as yf

  12. import os


  13. pyplt = plotly.offline.plot


  14. # 如果项目路径下没有 "images" 文件夹,则创建该文件夹

  15. if not os.path.exists("images"):

  16. os.mkdir("images")


  17. # 如果项目路径下没有 "htmls" 文件夹,则创建该文件夹

  18. if not os.path.exists("htmls"):

  19. os.mkdir("htmls")


  20. date_end = datetime.today().strftime('%Y-%m-%d')


  21. # yfinance, 标准普尔500指数 雅虎的代码是 ^GSPC

  22. # 在其他地方,标准普尔500指数,代码通常是 SPX

  23. data_spx = yf.download('^GSPC', start='1950-01-01', end=date_end)


  24. # plotly,基础图

  25. trace0 = go.Scatter(x=data_spx.index, y=data_spx['Close'],

  26. mode='lines',

  27. marker=dict(color='#d66101'), # 设置K线颜色

  28. )

  29. data = [trace0]

  30. fig_spx = go.Figure(data=data)

  31. fig_spx.update_layout(template='ggplot2')

  32. fig_spx.update_layout(title=dict(text='价值前瞻-SPX', font=dict(size=24, color='#d66101'), x=0.5))

  33. # 保存静态图片

  34. fig_spx.write_image('images/spx.png')

  35. # 在浏览器中输出结果

  36. pyplt(fig_spx, filename='htmls/export-image.html')

上述案例中,是以保存 png 为示例,其他格式的静态图片,各位可以自己去试试。

---------End---------

关注后回复“w”,加我私人微信



分享”和“在看”是更好的支持!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存