目录
  • 前言
  • 一、简单的正弦函数与余弦函数
  • 二、进阶版正弦函数与余弦函数
    • 1.改变颜色与粗细
    • 2.设置图片边界
    • 3.设置记号
    • 4.设置记号的标签
    • 5.设置X,Y轴
    • 6.完整代码
  • 三、绘制简单的折线图
    • 总结

      前言

      Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索使用matplotlib 库实现简单的图形绘制。

      一、简单的正弦函数与余弦函数

      是取得正弦函数和余弦函数的值:

      X 是一个 numpy 数组,包含了从 −π 到 +π 等间隔的 256 个值。C 和 S 则分别是这 256 个值对应的余弦和正弦函数值组成的 numpy 数组。

      X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
      C,S = np.cos(X), np.sin(X)

       完整代码如下

      import numpy as np
      import matplotlib.pyplot as plt
       
      X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
      C, S = np.cos(X), np.sin(X)
      #绘制并显示图形
      plt.plot(X, C)
      plt.plot(X, S)
       
      plt.show()

      Python中如何使用Matplotlib库绘制图形

      二、进阶版正弦函数与余弦函数

      上面我们学习了简单的正弦函数与余弦函数,接下来我们将精益求精,改变颜色与粗细,设置记号,调整边框等。

      1.改变颜色与粗细

      我们以蓝色和红色分别表示余弦和正弦函数,而后将线条变粗一点。接下来,我们在水平方向拉伸一下整个图。

      代码如下(示例):

      figure(figsize=(10, 6), dpi=80)
      plot(X, C, color="blue", linewidth=2.5, linestyle="-")
      plot(X, S, color="red",  linewidth=2.5, linestyle="-")

      Python中如何使用Matplotlib库绘制图形

      2.设置图片边界

      代码如下(示例):

      xmin, xmax = X.min(), X.max()
      dx = (xmax - xmin) * 0.2
      xlim(xmin - dx, xmax + dx)

      Python中如何使用Matplotlib库绘制图形

      3.设置记号

      我们讨论正弦和余弦函数的时候,通常希望知道函数在 ±π 和 ±π2 的值。

      xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
      yticks([-1, 0, +1])

      Python中如何使用Matplotlib库绘制图形

      4.设置记号的标签

      我们可以把 3.142 当做是 π,但毕竟不够精确。当我们设置记号的时候,我们可以同时设置记号的标签。注意这里使用了 LaTeX。

      xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
             [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
       
      yticks([-1, 0, +1],
             [r'$-1$', r'$0$', r'$+1$'])

      Python中如何使用Matplotlib库绘制图形

      5.设置X,Y轴

      ax = gca()
      ax.spines['right'].set_color('none')
      ax.spines['top'].set_color('none')
      ax.xaxis.set_ticks_position('bottom')
      ax.spines['bottom'].set_position(('data', 0))
      ax.yaxis.set_ticks_position('left')
      ax.spines['left'].set_position(('data', 0))

      Python中如何使用Matplotlib库绘制图形

      6.完整代码

      # 导入 matplotlib 的所有内容(nympy 可以用 np 这个名字来使用)
      from pylab import *
       
      # 创建一个 8 * 6 点(point)的图,并设置分辨率为 80
      figure(figsize=(8, 6), dpi=80)
       
      # 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
      subplot(1, 1, 1)
       
      X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
      C, S = np.cos(X), np.sin(X)
       
      # 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
      plot(X, C, color="blue", linewidth=1.0, linestyle="-")
       
      # 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
      plot(X, S, color="green", linewidth=1.0, linestyle="-")
       
      # 设置横轴的上下限
      xlim(-4.0, 4.0)
       
      # 设置横轴记号
      xticks(np.linspace(-4, 4, 9, endpoint=True))
       
      # 设置纵轴的上下限
      ylim(-1.0, 1.0)
       
      # 设置纵轴记号
      yticks(np.linspace(-1, 1, 5, endpoint=True))
       
      # 以分辨率 72 来保存图片
      # savefig("exercice_2.png",dpi=72)
       
      # 设置颜色与粗细
      figure(figsize=(10, 6), dpi=80)
      plot(X, C, color="blue", linewidth=2.5, linestyle="-")
      plot(X, S, color="red",  linewidth=2.5, linestyle="-")
      # 设置边框
      xmin, xmax = X.min(), X.max()
       
      dx = (xmax - xmin) * 0.2
       
      xlim(xmin - dx, xmax + dx)
      # 设置记号
      xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
      yticks([-1, 0, +1])
       
      # 设置记号的标签
      xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
             [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
       
      yticks([-1, 0, +1],
             [r'$-1$', r'$0$', r'$+1$'])
       
      # 设置xy轴
      ax = gca()
      ax.spines['right'].set_color('none')
      ax.spines['top'].set_color('none')
      ax.xaxis.set_ticks_position('bottom')
      ax.spines['bottom'].set_position(('data', 0))
      ax.yaxis.set_ticks_position('left')
      ax.spines['left'].set_position(('data', 0))
      # 在屏幕上显示
      show()

      最终效果

      Python中如何使用Matplotlib库绘制图形

      三、绘制简单的折线图

      折线图是一种将数据点按照顺序连起来的图形,可以体现变量y随变量x的变化情况。Matplotlib 提供了plot()函数绘制折线图,其语法格式如下:

      plt.plot(*args, **kwargs)

      常用参数及说明如下:

      • x、y:分别表示x轴和y轴对应的数据,接收列表类型参数
      • color:表示折线的颜色
      • marker:表示折线上点的类型,有“.”、“o”、“v”等等类型
      • linestyle:表示折线的类型,默认为“-”,表示实线,设置为“–”表示长虚线,设置为“-.”表示点线,设置为“:”表示点虚线
      • linewidth:表示折线的粗细
      • alpha:表示点的透明度,接收0~1之间的小数

      下面我们将以 某地区周一到周日平均温度变化折线图为例,具体的学习了解折线图的绘制。

      import matplotlib.pyplot as plt
       
      plt.figure(figsize=(10, 8))
      # 周一到周日平均温度数据
      plt.plot([1,2,3,4,5,6,7], [12,11,11,13,12,10,10])
      plt.show()

      效果如下:

      Python中如何使用Matplotlib库绘制图形

      我们可以给图表添加一些标签和图例,让图表更加清晰好看,具体方法如下:

      • plt.title():指定当前图表的标题,包括名称、位置、颜色、字体大小等
      • plt.xlabel():指定当前图表x轴的名称、位置、颜色、字体大小等
      • plt.ylabel():指定当前图表y轴的名称、位置、颜色、字体大小等
      • plt.xlim():指定当前图表x轴的范围
      • plt.ylim():指定当前图表y轴的范围
      • plt.xticks():指定当前图表x轴刻度
      • plt.yticks():指定当前图表y轴刻度
      import matplotlib.pyplot as plt
       
      # 设置支持中文
      plt.rcParams['font.family'] = ['SimHei']
      plt.figure(figsize=(10, 8))
       
      plt.plot([1,2,3,4,5,6,7], [12,11,11,13,12,10,10], linestyle="-", marker=".")
      plt.xlabel("时间")
      plt.ylabel("温度")
      plt.yticks([i for i in range(20)][::5])
       
      plt.show()

      效果如下:

      Python中如何使用Matplotlib库绘制图形

      总结

      声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。