返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么将matplotlib图表集成进到PDF中
  • 362
分享到

Python怎么将matplotlib图表集成进到PDF中

2023-06-29 17:06:33 362人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python怎么将matplotlib图表集成进到pdf中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧

今天小编给大家分享一下python怎么将matplotlib图表集成进到pdf中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.介绍

PDF 格式是与平台无关,它独立于底层操作系统和渲染引擎。事实上,PDF 是基于一种脚本语言——PostScript,它是第一个独立于设备的页面描述语言。

在本指南中,我们将使用 borb —— 一个专门用于阅读、操作和生成 PDF 文档的 Python 库。它提供了一个低级模型(允许您访问精确的坐标和布局)和一个高级模型(您可以将边距、位置等精确计算委托给布局管理器) .

matplotlib 是一个数据可视化库,也是许多其他流行库(如 Seaborn)背后的引擎。

基于用于创建报告(通常包括图形)的常见 PDF 文档,我们将看看如何使用 borbMatplotlib 图表集成到 PDF 文档中。

2.安装 borb和 matplotlib

borb 可以从 GitHub 上的源代码下载,或通过 pip 安装:

$ pip install borb

matplotlib 也可以通过 pip 安装:

$ pip install matplotlib

用 Borb 在 PDF 文档中集成 Matplotlib 图表

在创建饼图等图表之前,我们将编写一个小的效用函数,该函数生成 N 种颜色,均匀分布在颜色光谱中。

每当我们需要创建绘图并为每个部分着色时,这将对我们有所帮助:

from borb.pdf.canvas.color.color import HSVColor, HexColorfrom decimal import Decimalimport typing def create_n_colors(n: int) -> typing.List[str]:  # The base color is borb-blue  base_hsv_color: HSVColor = HSVColor.from_rgb(HexColor("56cbf9"))  # This array comprehension creates n HSVColor objects, transfORMs then to RGB, and then returns their hex string  return [HSVColor(base_hsv_color.hue + Decimal(x / 360), Decimal(1), Decimal(1)).to_rgb().to_hex_string() for x in range(0, 360, int(360/n))]

HSL 和 HSV/HSB 是由计算机图形学研究人员在 1970 年代设计的,目的是更接近人类视觉感知色彩属性的方式。在这些模型中,每种色调的颜色都排列在一个径向切片中,围绕中性色的中心轴,范围从底部的黑色到顶部的白色:

Python怎么将matplotlib图表集成进到PDF中

用它表示颜色的优点是我们可以轻松地将颜色光谱分成相等的部分。

现在我们可以定义一个 create_pie_chart() 函数(或其他类型图的函数):

# New import(s)import matplotlib.pyplot as pltfrom borb.pdf.canvas.layout.image.chart import Chartfrom borb.pdf.canvas.layout.layout_element import Alignment def create_piechart(labels: typing.List[str], data: typing.List[float]):   # Symetric figure to ensure equal aspect ratio  fig1, ax1 = plt.subplots(figsize=(4, 4))  ax1.pie(    data,    explode=[0 for _ in range(0, len(labels))],    labels=labels,    autopct="%1.1f%%",    shadow=True,    startangle=90,    colors=create_n_colors(len(labels)),  )   ax1.axis("equal")  # Equal aspect ratio ensures that pie is drawn as a circle.   return Chart(    plt.GCf(),    width=Decimal(200),    height=Decimal(200),    horizontal_alignment=Alignment.CENTERED,  )

在这里,我们使用 Matplotlib 通过 pie() 函数创建饼图。

PyPlot 实例的 gcf() 函数返回当前图形。该图可以嵌入到 PDF 文档中,方法是将其注入到 Chart 构造函数中,并与您的自定义参数(例如width, height 和 horizontal_alignment)一起插入。

我们只需向Chart构造函数提供一个 Matplotlib 图。

3.将 Matplotlib 图表添加到 PDF 文档

现在是时候创建我们的 PDF 文档并向其中添加内容了。

# New import(s)from borb.pdf.document import Documentfrom borb.pdf.page.page import Pagefrom borb.pdf.pdf import PDFfrom borb.pdf.canvas.layout.page_layout.multi_column_layout import MultiColumnLayoutfrom borb.pdf.canvas.layout.page_layout.page_layout import PageLayoutfrom borb.pdf.canvas.layout.text.paragraph import Paragraph # Create empty Documentpdf = Document() # Create empty Pagepage = Page() # Add Page to Documentpdf.append_page(page) # Create PageLayoutlayout: PageLayout = MultiColumnLayout(page) # Write titlelayout.add(Paragraph("About Lorem Ipsum",                      font_size=Decimal(20),                      font="Helvetica-Bold"))

我们将在此 PDF 中使用连字符,以确保文本的布局更加流畅。borb 中的连字符非常简单:

# New import(s)from borb.pdf.canvas.layout.hyphenation.hyphenation import Hyphenation # Create hyphenation alGorithmhyphenation_algorithm: Hyphenation = Hyphenation("en-gb") # Write paragraphlayout.add(Paragraph(    """    Lorem Ipsum is simply dummy text of the printing and typesetting industry.     Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,     when an unknown printer took a galley of type and scrambled it to make a type specimen book.     It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.     It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages,     and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.    """, text_alignment=Alignment.JUSTIFIED, hyphenation=hyphenation_algorithm))

现在我们可以使用我们之前声明的函数添加饼图;

# Write graphlayout.add(create_piechart(["Loren", "Ipsum", "Dolor"],                            [0.6, 0.3, 0.1]))

接下来我们将编写另外三个 Paragraph对象。其中一个将不仅仅表示引用(侧面边框,不同字体等)。

# Write paragraphlayout.add(Paragraph(    """    Contrary to popular belief, Lorem Ipsum is not simply random text.     It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.     Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin Words,     consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature,     discovered the undoubtable source.    """, text_alignment=Alignment.JUSTIFIED, hyphenation=hyphenation_algorithm)) # Write paragraphlayout.add(Paragraph(    """    Lorem Ipsum is simply dummy text of the printing and typesetting industry.     """,     font="Courier-Bold",    text_alignment=Alignment.JUSTIFIED,     hyphenation=hyphenation_algorithm,    border_color=HexColor("56cbf9"),    border_width=Decimal(3),    border_left=True,    padding_left=Decimal(5),    padding_bottom=Decimal(5),)) # Write paragraphlayout.add(Paragraph(    """    Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum"     (The Extremes of Good and Evil) by Cicero, written in 45 BC.     This book is a treatise on the theory of ethics, very popular during the Renaissance.    """, text_alignment=Alignment.JUSTIFIED, hyphenation=hyphenation_algorithm))

让我们添加另一个绘图。

# Write graphlayout.add(create_piechart(["Loren", "Ipsum", "Dolor", "Sit", "Amet"],                            [600, 30, 89, 100, 203]))

还有一段内容(Paragraph):

# Write paragraphlayout.add(Paragraph(    """    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.     The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here',     making it look like readable English. Many desktop publishing packages and WEB page editors now use Lorem Ipsum as their default model text,     and a search for 'lorem ipsum' will uncover many web sites still in their infancy.     Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).    """, text_alignment=Alignment.JUSTIFIED, hyphenation=hyphenation_algorithm))

最后,我们可以存储文档(Document):

# Write to diskwith open("output.pdf", "wb") as pdf_file_handle:  PDF.dumps(pdf_file_handle, pdf)

运行此代码会生成如下所示的 PDF 文档:

Python怎么将matplotlib图表集成进到PDF中

以上就是“Python怎么将matplotlib图表集成进到PDF中”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python怎么将matplotlib图表集成进到PDF中

本文链接: https://lsjlt.com/news/325869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么将matplotlib图表集成进到PDF中
    今天小编给大家分享一下Python怎么将matplotlib图表集成进到PDF中的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • Python 如何将 matplotlib 图表集成进到PDF 中
    目录1.介绍2.安装 borb和 matplotlib3.将 Matplotlib 图表添加到 PDF 文档1.介绍 PDF 格式是与平台无关,它独立于底层操作系统和渲染引擎。事实上...
    99+
    2024-04-02
  • python怎么用matplotlib生成图表
    要使用 matplotlib 在 python 中生成图表,请遵循以下步骤:安装 matplotlib 库。导入 matplotlib 并使用 plt.plot() 函数生成图表。自定义...
    99+
    2024-05-05
    python 可视化数据 排列
  • python怎么将pdf转换成word
    您可以使用Python中的pytesseract库将PDF文件转换为文本,然后使用Python-docx库将文本转换为Word文档。...
    99+
    2023-09-22
    python
  • Python中怎么用Matplotlib绘制图表
    这篇文章主要介绍“Python中怎么用Matplotlib绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么用Matplotlib绘制图表”文章能帮助大家解决问题。前言Matp...
    99+
    2023-06-28
  • 将SCONS工具集成到Python代码中
        SCONS是Python的自动智能结构化编译工具,将来或许能代替Make。    在Windows或者Linux下,SConstruct文件相当于MakeFile,使用SCONS编译,需输入scons.bat(scons),后面带上...
    99+
    2023-01-31
    代码 工具 SCONS
  • 使用python怎么将Word转换成pdf
    这篇文章将为大家详细讲解有关使用python怎么将Word转换成pdf,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序...
    99+
    2023-06-14
  • 利用python将 Matplotlib 可视化插入到 Excel表格中
    目录数据可视化图表插入Excel前言: 在生活中工作中,我们经常使用Excel用于储存数据,Tableau等BI程序处理数据并进行可视化。我们也经常使用R、Python编程进行高质量...
    99+
    2024-04-02
  • 怎么将Spire.XLS for C++集成到C++程序中
    这篇文章主要介绍了怎么将Spire.XLS for C++集成到C++程序中的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么将Spire.XLS for C++集成到C...
    99+
    2023-07-05
  • 怎么用Python matplotlib plotly绘制图表
    这篇文章主要讲解了“怎么用Python matplotlib plotly绘制图表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python matplo...
    99+
    2023-06-29
  • Python怎么将pdf转为图片?Python如何实现pdf文件转图片
    而pdf则是用来保存一些内容已经确定好的数据,因为pdf是无法直接修改内容的,所以也会经常将pdf转为图片来保存。本文就将会来介绍一下pdf转图片的方法,往下看看吧。 1.pdf转图片的话主要实现所需要的模块叫做PyMuPDF,它就是用来...
    99+
    2023-09-02
    python Powered by 金山文档
  • python中怎么用matplotlib绘图
    要使用matplotlib绘图,需要先安装matplotlib库。可以使用以下命令安装:```pip install matplot...
    99+
    2023-09-20
    matplotlib python
  • 如何利用python将Matplotlib可视化插入到Excel表格中
    这篇文章主要讲解了“如何利用python将Matplotlib可视化插入到Excel表格中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python将Matplotlib可视化插入到...
    99+
    2023-07-02
  • PyQt5中怎么通过Matplotlib生成图像
    PyQt5中怎么通过Matplotlib生成图像,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是MatplotlibMatplotlib是一个Python 2D绘图库,...
    99+
    2023-06-16
  • Python中怎么将Office文件转为PDF
    这篇文章将为大家详细讲解有关Python中怎么将Office文件转为PDF,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。安装 win32com在实战之前,需要安装 Python 的 win3...
    99+
    2023-06-16
  • 怎么在Python中使用matplotlib绘图
    今天就跟大家聊聊有关怎么在Python中使用matplotlib绘图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requesuts...
    99+
    2023-06-14
  • 怎么在Pyside2中使用Matplotlib进行绘图
    这篇文章主要为大家详细介绍了怎么在Pyside2中使用Matplotlib进行绘图,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下: 界面设计简单创建一个界面:一个 GraphicsView 和 一个 PushB...
    99+
    2023-06-06
  • python怎么将列表保存到mysql
    python使用db实现将列表保存到mysql中 具体方法如下:import MySQLdbdb=MySQLdb.connect(passwd="moonpie",db="thangs")c=db.cursor()c.e...
    99+
    2024-04-02
  • Python中怎么用matplotlib绘制直方图
    这篇文章主要介绍“Python中怎么用matplotlib绘制直方图”,在日常操作中,相信很多人在Python中怎么用matplotlib绘制直方图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中...
    99+
    2023-06-21
  • Python中Matplotlib图像怎么添加标签
    一、添加文本标签 plt.text()用于在绘图过程中,在图像上指定坐标的位置添加文本。需要用到的是plt.text()方法。其主要的参数有三个:plt.text(x, y, s)其中x、y表示传入点的x和y轴坐标。s表示字符串。需要注意的...
    99+
    2023-05-14
    Python Matplotlib
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作