• 【matplotlib基础】--画布


    Matplotlib 库是一个用于数据可视化和绘图的 Python 库。
    它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。

    使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。
    难点在于对绘制的图形进行调整,这些调整包括:

    1. 图形的大小
    2. 多个图形的组合
    3. 坐标轴的方向,刻度的精度
    4. 图形的颜色和字体

    等等。

    进行这些调整需要对 Matplotlib 的绘图机制和其中的主要元素有个整体的了解。
    本篇首先整体介绍下Matplotlib绘制的图形中的主要元素,然后重点介绍下其中第一个重要的元素--画布

    1. 主要元素

    下面绘制一个简单的图形来演示Matplotlib绘图时的主要元素。

    import numpy as np
    
    import matplotlib
    import matplotlib.pyplot as plt
    
    %matplotlib inline
    
    #绘制一个展示主要元素的图
    x = np.array(range(0, 8))
    y1 = np.sin(x)
    
    fig = plt.figure()
    fig.set_size_inches(10,4)
    fig.set_facecolor('lightgreen')
    fig.suptitle("整个图形的总标题")
    fig.subplots_adjust(wspace=0.3)
    
    ax1 = fig.add_subplot(121)
    ax1.plot(x, y1)
    ax1.set_title("图1 标题")
    ax1.set_xlabel("图1--x轴")
    ax1.set_ylabel("图1--y轴")
    
    ax2 = fig.add_subplot(122)
    y2 = np.cos(x)
    ax2.plot(x, y1)
    ax2.plot(x, y2)
    ax2.set_title("图2 标题")
    ax2.set_xlabel("图2--x轴")
    ax2.set_ylabel("图2--y轴")
    ax2.legend(labels=["sin", "cos"])
    
    fig.show()
    

    image.png
    上例中,我们绘制了2个子图。
    主要的元素包括,图形的大小,图形的标题(主标题和子图标题),坐标轴(轴标签和刻度),图例,子图中曲线(这里可以根据情况换成其他图形,比如柱状图,散点图等等)。

    上面的示例代码不用太关心,这里只是为了显示Matplotlib的主要元素。
    后续的文章会介绍各个主要元素的常用属性,最终的目的是能够灵活的绘制出符合显示要求的图形,而不仅仅只是绘制出图形。

    本篇介绍的主要元素是画布

    2. 画布

    画布是其他所有的元素的载体,可以说是最重要,也是最容易被忽视的元素。
    绘制图形之前,第一件事就是创建画布

    2.1. 主要属性

    创建画布之后,一般主要用到的属性是调整画布的大小颜色
    Matplotlib画布的大小通过设置英寸和dpi来实现,dpi表示一英寸有多少像素。

    2.1.1. 画布大小

    比如下面的示例:

    fig = plt.figure(figsize=[6, 3], dpi=100)
    fig.suptitle("标题")
    x = np.array(range(0, 8))
    y = np.sin(x)
    plt.plot(x, y)
    

    image.png

    修改dpi=200,图形明显变大和清晰。

    fig = plt.figure(figsize=[6, 3], dpi=200)
    

    image.png

    2.1.2. 画布颜色

    除了大小,设置画布颜色也是比较常用的。
    颜色主要有两种,背景色和边框颜色(默认的边框宽度是0,所以要设置边框颜色时,别忘了设置边框的宽度)。
    比如:下面示例设置了背景色浅绿色,边框宽度10,颜色红色

    fig = plt.figure(facecolor="lightgreen",
                    edgecolor="red",
                    linewidth=10)
    fig.suptitle("标题")
    x = np.array(range(0, 8))
    y = np.sin(x)
    plt.plot(x, y)
    

    image.png

    2.2. 主要方法

    除了属性,画布还有几个方法也是经常使用的。

    2.2.1. 设置标题

    上面的示例中已经包含了,也就是 suptitle() 方法。

    2.2.2. 添加子图

    添加子图用 add_subplot() 方法,这个方法的参数一般是三个数组 xyz
    x表示有几行,y表示有几列,z表示是第一个子图。
    比如:一行两列2个图

    fig = plt.figure()
    
    fig.add_subplot(121)
    fig.add_subplot(122)
    

    image.png

    比如:2行一列2个图:

    fig = plt.figure()
    
    fig.add_subplot(211)
    fig.add_subplot(212)
    

    image.png

    比如:2行2列4个图:

    fig = plt.figure()
    
    fig.add_subplot(221)
    fig.add_subplot(222)
    fig.add_subplot(223)
    fig.add_subplot(224)
    

    image.png

    2.2.3. 保存图像

    画布还有个重要的功能就是把显示的图形保存下来,即 savefig() 方法。
    可以把绘制的图形保存到磁盘,用于分享或者制作报告。

    fig.savefig("d:/share/image.png")
    

    3. 总结回顾

    画布让我们可以整体上设置图形的质量和排版,分析和作图过程中虽然不用过多考虑它,但是最终如果要出报告和文档时,画布的设置就会变得重要。

    画布是绘图的第一步,接下来这个系列会逐步介绍 Matplotlib的其他主要元素。

  • 相关阅读:
    GitLab的个人仓库转移到团队仓库
    页面置换算法
    IntersectionObserver监听滚动事件
    【后端版】分布式医疗云平台【字典类型管理、生成字典类型相关代码、编写接口公用的 ShiroSecurityUtils、编写接口 DictTypeController】(二十二)
    社区供稿丨GPT-4o 对实时互动与 RTC 的影响
    java api System类
    机器学习3-岭回归,Lasso,变量选择技术
    人人能读懂redux原理剖析
    c#仿热血江湖
    《嵌入式虚拟化技术与应用》:深入浅出阐述嵌入式虚拟机原理,实现“小而能”嵌入式虚拟机!
  • 原文地址:https://www.cnblogs.com/wang_yb/p/17666711.html