使用matplotlib在一张图上画多条曲线

做数据分析,还有机器学习的收敛性,准确性分析时,往往需要将一些数据图形化,以曲线的形式显示出来,下面就介绍两种方式来实现这个小问题,一种是object-oriented面向对象的,另一种是基于plt的。

下面这个方式是面向对象的方式:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,2,100)
fig,ax = plt.subplots()
ax.plot(x,x,label='linear')
ax.plot(x,x**2,label='quadratic')
ax.plot(x,x**3,label='cubic')
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title('simple plot')
ax.legend()
plt.show()

将图形中的每个元素进行定义,然后组建成一个整体图像,是基于对象的。

上面的代码产生的图形如下图所示:

另一种是完全给予plt的代码,如下所示:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,2,100)

plt.plot(x,x,label='linear')
plt.plot(x,x**2,label='quadratic')
plt.plot(x,x**3,label='cubic')
plt.xlabel('x label')
plt.xlabel('y label')
plt.title('simple plot')
plt.legend()
plt.show()

两种方式产生的图是一样的。

那么为什么要将上述两种代码分为面向对象和基于plt的呢,是由于matplotlib做出的图的每一个部分都可以看做一个独立的对象,比如坐标轴,坐标轴的刻度,坐标轴的名称,这个图的标题等等,下面的这个图可以很好的说明这个问题,因为已经将每一个部分分别标出来了。

发布了36 篇原创文章 · 获赞 11 · 访问量 6523

猜你喜欢

转载自blog.csdn.net/t20134297/article/details/105018198
今日推荐