Matplotlib 同一坐标里显示多条曲线

前面学习了怎么样显示一条简单的数学曲线,是最简单的方式,也是最基本的使用。不过稍为复杂一点的作图,都会需要多条曲线,比如水的沸腾就是在气压和温度的作用下,才能决定它的沸点。人的体重是否超重,也是在重量和身高的相互关系之下才能决定是否健康。因此,往往需要多条曲线在同一个坐标里显示。现在就来学习怎么样在同一个坐标里显示多条曲线。

要显示多条曲线,首先要有多条曲线的数据,在这里使用下面的代码来构造两条曲线的数据:

x = [20, 40, 60, 80, 100, 120, 140]
y1 = [30, 50, 30, 46, 70, 43, 80]
y2 = [45, 35, 40, 60, 60, 55, 70]

统一使用了一个X轴的坐标,一个Y轴的坐标,显示图如下:

Matplotlib同一坐标里显示多条曲线

为了区分两条不同曲线的数据,先采用颜色来区分,温度显示为蓝色,压力显示为红色。接着为了知道数据点的位置,应用函数plt.scatter对点进行标记,温度采用小方块来标记数据点,而压力采用五角星来标记。marker = ‘s’是表示使用方块,marker = ‘*’是表示使用五角星,marker更多的标记如下:

Matplotlib同一坐标里显示多条曲线

Matplotlib同一坐标里显示多条曲线

更多的表示,可以查看下面的网站:

https://matplotlib.org/api/markers_api.html#module-matplotlib.markers

整个例子的代码如下:

import numpy as np
import matplotlib.pyplot as plt

plt.figure('deepinout.com 极客笔记')
plt.axis([0, 150, 0, 100])
plt.axis('on')
plt.grid(True)

#定义显示的数据
x = [20, 40, 60, 80, 100, 120, 140]
y1 = [30, 50, 30, 46, 70, 43, 80]
y2 = [45, 35, 40, 60, 60, 55, 70]

#显示数据
plt.plot(x, y1, 'b', label = 'Temperature')
plt.plot(x, y2, 'r', label = 'Pressure')

#把数据点作标记
plt.scatter(x, y1, color = 'b', marker = 's')
plt.scatter(x, y2, color = 'r', marker = '*', s = 50)

#图例
plt.legend(loc = 'upper left')

plt.show()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程