In [1]:
import matplotlib.pyplot as plt
%matplotlib inline #加这行不需要再写plt.show()
In [2]:
# 折线图,红色
plt.plot([1,2,4,8,16],'r')
Out[2]:
[<matplotlib.lines.Line2D at 0x111344c90>]
In [3]:
import numpy as np

x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x))
Out[3]:
[<matplotlib.lines.Line2D at 0x1114b4c90>]
In [4]:
x=np.linspace(0,2*np.pi,10) #包含10个元素,均匀分布在[0,2pi]
plt.plot(x,np.sin(x))
plt.show()
In [5]:
#在一张图中绘制多个数据集
x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),x,np.sin(2*x))
#plt.show()
Out[5]:
[<matplotlib.lines.Line2D at 0x11170f550>,
 <matplotlib.lines.Line2D at 0x11170f750>]
In [6]:
#自定义图形的外观
x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),'r-o',
         x,np.cos(x),'g--')
#plt.show()
Out[6]:
[<matplotlib.lines.Line2D at 0x111839b50>,
 <matplotlib.lines.Line2D at 0x111839c50>]

上述代码展示了两种不同的曲线样式:'r-o' 和 'g--'。字母 'r' 和 'g' 代表线条的颜色,后面的符号代表线和点标记的类型。例如 '-o' 代表包含实心点标记的实线,'--' 代表虚线。

颜色: 蓝色 - 'b' 绿色 - 'g' 红色 - 'r' 青色 - 'c' 品红 - 'm' 黄色 - 'y' 黑色 - 'k'('b'代表蓝色,所以这里用黑色的最后一个字母) 白色 - 'w' 线: 直线 - '-' 虚线 - '--' 点线 - ':' 点划线 - '-.' 常用点标记 点 - '.' 像素 - ',' 圆 - 'o' 方形 - 's' 三角形 - '^'

In [7]:
#使用子图可以在一个窗口绘制多张图

x=np.linspace(0,2*np.pi)
plt.subplot(2,1,1) #行,列,活跃区
plt.plot(x,np.sin(x),'r')
plt.subplot(2,1,2)
plt.plot(x,np.cos(x),'g')
#plt.show()
Out[7]:
[<matplotlib.lines.Line2D at 0x11160d3d0>]

活跃区域代表当前子图所在绘图区域,绘图区域是按从左至右,从上至下的顺序编号。例如在 4×4 的方格上,活跃区域 6 在方格上的坐标为 (2, 2)。

In [8]:
# 简单的散点图
x=np.linspace(0,2*np.pi)
y=np.sin(x)
plt.scatter(x,y)
#plt.show()
Out[8]:
<matplotlib.collections.PathCollection at 0x111a09510>

只需要调用 scatter() 函数并传入两个分别代表 x 坐标和 y 坐标的数组。注意,我们通过 plot 命令并将线的样式设置为 'bo' 也可以实现同样的效果。

In [9]:
x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),'go')
plt.show()
In [10]:
#彩色映射散点图
x=np.random.rand(100)
y=np.random.rand(100)
size=np.random.rand(100)*50
colour=np.random.rand(100)
plt.scatter(x,y,size,colour)
plt.colorbar()
plt.show()

同前面一样我们用到了 scatter() 函数,但是这次我们传入了另外的两个参数,分别为所绘点的大小和颜色。通过这种方式使得图上点的大小和颜色根据数据的大小产生变化。

然后我们用 colorbar() 函数添加了一个颜色栏。

In [11]:
#直方图

x=np.random.randn(100)*10
plt.hist(x,50)
plt.show()

直方图是 Matplotlib 中最简单的图形之一。你只需要给 hist() 函数传入一个包含数据的数组。第二个参数代表数据容器的个数。数据容器代表不同的值的间隔,并用来包含我们的数据。数据容器越多,图形上的数据条就越多。

In [12]:
#添加标题,坐标轴标记和图例

x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),'r-x',label='Sin(x)')
plt.plot(x,np.cos(x),'g-^',label='Cos(x)')
plt.legend() #展示图例,必须调用这个上面的label才会显示
plt.xlabel('Reds') #给x轴添加标签
plt.ylabel('Amplitude') #给y轴添加标签
plt.title('Sin and Cos Waves') #添加图形标题
plt.show()

为了给图形添加图例,我们需要在 plot() 函数中添加命名参数 'label' 并赋予该参数相应的标签。然后调用 legend() 函数就会在我们的图形中添加图例。

接下来我们只需要调用函数 title(),xlabel() 和 ylabel() 就可以为图形添加标题和标签。

In [13]:
x=np.linspace(0,2*np.pi)
plt.plot(x,np.sin(x),'r-x',label='Sin(x)')
plt.plot(x,np.cos(x),'g-^',label='Cos(x)')
#plt.legend() #展示图例
plt.xlabel('Reds') #给x轴添加标签
plt.ylabel('Amplitude') #给y轴添加标签
plt.title('Sin and Cos Waves') #添加图形标题
plt.show()