Matplotlib-第2关:线形图


任务描述

本关任务:学习掌握matplotlib的第一个图形线形图,并能够使用线形常用配置。

相关知识

为了完成本关任务,你需要掌握:1.如何绘制线形图,2.如何为线形图设置颜色风格和坐标轴。

  • 适用场景: 折线图适合二维的大数据集,尤其是那些趋势比单个数据点更重要的场合。它还适合多个二维数据集的比较。
绘制线形图

在所有图形中,最简单的应该就是线性方程y = f (x) 的可视化了。来看看如何创建这个简单的线形图。要画Matplotlib图形时,都需要先创建一个图形fig 和一个坐标轴ax。创建图形与坐标轴的最简单做法是:

 
 
  1. import matplotlib.pyplot as plt#导入模块
  2. plt.style.use('seaborn-whitegrid')#设置matplotlib画图样式
  3. fig = plt.figure()
  4. ax = plt.axes()

Matplotlib中,figureplt.Figure类的一个实例)可以被看成是个能够容纳各种坐标轴、图形、文字和标签的容器。就像你在图中看到的那样,axesplt.Axes类的一个实例)是一个带有刻度和标签的矩形,最终会包含所有可视化的图形元素。

在这里我们一般使用变量fig表示一个图形实例,用变量ax表示一个坐标轴实例。接下来使用ax.plot画图,从简单的正弦曲线开始:

 
 
  1. fig = plt.figure()
  2. ax = plt.axes()
  3. x = np.linspace(0, 10, 1000)
  4. ax.plot(x, np.sin(x))

也可以使用pylab接口画图,这时图形与坐标轴都在底层执行,执行结果和上图一样:plt.plot(x, np.sin(x))

试想下如果我们重复调用plot命令会发生什么,它会在一张图中创建多条线:

 
 
  1. plt.plot(x, np.sin(x))
  2. plt.plot(x, np.cos(x))

设置颜色和风格

在画图的过程中通常对图形的第一次调整是调整它线条的颜色与风格。

plt.plot()函数可以通过相应的参数设置颜色和风格,修改颜色使用color参数,它支持各种颜色值的字符串,具体使用如下:

 
 
  1. plt.plot(x, np.sin(x - 0), color='blue') # 标准颜色名称
  2. plt.plot(x, np.sin(x - 1), color='g') # 缩写颜色代码(rgbcmyk)
  3. plt.plot(x, np.sin(x - 2), color='0.75') # 范围在0~1的灰度值
  4. plt.plot(x, np.sin(x - 3), color='#FFDD44') # 十六进制(RRGGBB,00~FF)
  5. plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3)) # RGB元组,范围在0~1
  6. plt.plot(x, np.sin(x - 5), color='chartreuse') # HTML颜色名称

常用颜色对应值:

取值 颜色
b blue
g green
r red
c cyan
m magenta
y yellow
k black
w white

如果不指定颜色,matplotlib会为多条线自动循环使用一组默认的颜色。设置样式使用linestyle参数:

 
 
  1. plt.plot(x, x + 0, linestyle='solid')
  2. plt.plot(x, x + 1, linestyle='dashed')
  3. plt.plot(x, x + 2, linestyle='dashdot')
  4. plt.plot(x, x + 3, linestyle='dotted')
  5. #也可以用下面的简写形式
  6. plt.plot(x, x + 4, linestyle='-') # 实线
  7. plt.plot(x, x + 5, linestyle='--') # 虚线
  8. plt.plot(x, x + 6, linestyle='-.') # 点划线
  9. plt.plot(x, x + 7, linestyle=':') # 实点线

还可以将linestylecolor编码组合起来,作为plt.plot()函数的一个非关键字参数使用:

 
 
  1. plt.plot(x, x + 0, '-g') # 绿色实线
  2. plt.plot(x, x + 1, '--c') # 青色虚线
  3. plt.plot(x, x + 2, '-.k') # 黑色点划线
  4. plt.plot(x, x + 3, ':r'); # 红色实点线

设置坐标轴上下限

虽然matplotlib会自动为你的图形选择最合适的坐标轴上下限,但是有时自定义坐标轴上下线可能会更好。调整坐标轴上下限最基础的方式是plt.xlim()plt.ylim()

 
 
  1. plt.plot(x, np.sin(x))
  2. plt.xlim(-1, 11)
  3. plt.ylim(-1.5, 1.5)

如果你想要让坐标轴逆序显示,那么只需要逆序设置坐标轴刻度值就可以了。matplotlib还有一个方法是plt.axis()。通过传入[xminxmaxyminymax]对应的值,这样就可以用一行代码设置xy的限值:

 
 
  1. plt.plot(x, np.sin(x))
  2. plt.axis([-1, 11, -1.5, 1.5])

还支持按照图形的内容自动收紧坐标轴,不留空白区域:

 
 
  1. plt.plot(x, np.sin(x))
  2. plt.axis('tight')

设置图形标签

图形标签与坐标轴标题是最简单的标签,设置方法如下:

 
 
  1. plt.plot(x, np.sin(x))
  2. plt.title("A Sine Curve")
  3. plt.xlabel("x")
  4. plt.ylabel("sin(x)");

编程要求

在右侧编辑器Begin-End补充代码,根据输入数据input_datainput_data1绘制两条折线图。依次为两组数据设置颜色样式为--g:r;设置图例为L1L2,具体要求如下:

  • 折线图的figsize(10, 10)

  • 图形保存到Task2/img/T1.png

测试说明

平台会对你编写的代码进行测试:

预期输出:你的答案与正确答案一致

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt


def student(input_data,input_data1):

    # ********* Begin *********#
    plt.figure(figsize=(10, 10))

    # 绘制第一条折线图
    plt.plot(input_data, '--g', label='L1')

    # 绘制第二条折线图
    plt.plot(input_data1, ':r', label='L2')

    # 设置图例
    plt.legend()

    # 保存图形
    save_dir = 'Task2/img/'
    plt.savefig(f'{save_dir}T1.png')
    plt.close()
    # ********* End *********#

猜你喜欢

转载自blog.csdn.net/Joy19981127/article/details/134781717