一个Python函数解决各样式折线图绘制——Matplotlib库示例

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Python函数解决各样式折线图绘制——Matplotlib库示例相关的知识,希望对你有一定的参考价值。

系列文章目录

该系列部分文章目录:


文章目录

一、前言

二、函数代码

三、使用步骤

1. 引入库

2. 生成数据

3. 调用函数 

四、变量说明


一、前言

使用一个函数即可实现折线图的绘制,我们只需要准备号处理好的数据,传入到函数中并调用,即可实现折线图的绘制与输出。

  • Python版本:3.8.10
  • Matplotlib版本:3.3.2

注:Matplotlib 版本信息可以通过 pip show matplotlib 命令获得


二、函数代码

复制粘贴即可。

def LinePlot(x, y, filename):
    """
    Created on Sat Jul 17 11:02:06 2021

    Input :
        x           A list that stores the abscissa elements you want to draw
        y           A list of ordinate elements that you want to draw
        filename    The name of the image you are about to save

    Output :
        None

    @author: zq
    """
    # 设置 matplotlib 参数以显示 TeX 字体,不用可删去
    plt.rcParams.update(plt.rcParamsDefault)
    plt.rcParams['text.usetex'] = True
    plt.rcParams['font.size'] = 18
    plt.rcParams['font.family'] = "serif"

    #------------更改以下变量值以修改图像样式-------------#
    # linestyles = ['-', '--', '-.', ':'],默认为 '-'
    linestyle = '--'
    # linewidth = [2., 3., 4., 5...]
    linewidth = 3
    # 标记点间隔和标记大小,即隔几个点便高亮显示一个点
    mark, marksize = 5, 8
    # 线条颜色,红色:#DC143C,蓝色:#0000FF,绿色:#008000
    # 橙色:#FFA500,黑色:#000000,灰色:#808080
    color = '#DC143C'
    # 添加图像标签,可使用 TeX 公式,函数内已设置好数学环境
    label = 'y = sin^2(x) + cos(x)'
    xlabel, ylabel = 'x', 'y'
    # 往图像中添加文字,tx、ty 是添加位置坐标
    text = 'sample'
    tx, ty = -2, 0
    #------------更改以上变量值以修改图像样式-------------#

    # 创建图片,可自行设置图片横纵比
    plt.figure(figsize = (16, 9))
    # 横、纵坐标标签
    plt.xlabel('$' + xlabel + '$')
    plt.ylabel('$' + ylabel + '$')
    # 绘制图像
    plt.plot(x, y, 'o', ls = linestyle, lw = linewidth, ms = marksize,\\
             markevery = mark, color = color, label = '$' + label + '$')
    # 显示标签
    plt.legend()
    # 往图像中添加文字,第二个参数 xy 是文字出现起始点坐标
    plt.annotate(text, xy = (tx, ty), va = 'center', ha = 'left')
    # 显示图像
    plt.show()
    # 保存图片为 png 格式
    plt.savefig(filename, dpi = 300, bbox_inches = 'tight', facecolor = 'w')

要更改生成的图像样式,只需要更改函数体第二部分的变量值即可。


三、使用步骤

1. 引入库

代码如下:

import numpy as np
import matplotlib.pyplot as plt

2. 生成数据

这里我们使用上述函数绘制  y = sin^2(x) + cos(x)  的图像,首先我们创造函数坐标数据如下:

N = 50
x = np.linspace(0., 10., N)
y = np.sin(x)**2 + np.cos(x) / 2

其中 x 、y 为两个列表,并且元素个数一定要相同

3. 调用函数 

调用函数,生成图像,这里我们保存的图像文件名为 sample1.png,主函数代码如下:

if __name__ == '__main__':
    N = 50

    x = np.linspace(0., 10., N)
    y = np.sin(x)**2 + np.cos(x)
    filename = 'sample1'

    LinePlot(x, y, filename)

生成图像如下: 


四、变量说明

以下不同变量之间的配置情况均以图片对比的方式进行说明:

1. linestyle 变量

2. linewidth 变量

 3. mark、marksize 变量

 4. color 变量


文章到此就结束了,有帮助可以点赞哦,谢谢大家的支持! 

以上是关于一个Python函数解决各样式折线图绘制——Matplotlib库示例的主要内容,如果未能解决你的问题,请参考以下文章

Python使用matplotlib模块绘制多条折线图散点图

python数据分析-matplotlib折线图知识总结01

可视化实验十二:利用Python绘制箱线图折线图

可视化实验十二:利用Python绘制箱线图折线图

【R语言】--- ggplot2绘制折线图

Python图形绘制:如何用Matplotlib和pandas绘图?