机器学习中许多时候需要将数据可视化,方便更直观地表现目前的数据。
安装方法:
pip install matplotlib
matplotlib是一个庞大的绘图库模块。pyplot子模块可以完成许多图表绘制。
| 函数名称 | 说明 |
| plot | 绘制折线图 |
| scatter | 绘制散点图 |
| hist | 绘制直方图 |
| 函数名称 | 说明 |
| title(标题) | 设定坐标轴的标题 |
| axis() | 可以设定坐标轴的最小和最大刻度范围 |
| xlim(x_Min,x_Max) | 设定x轴的刻度范围 |
| ylim(y_Min,y_Max) | 设定y轴的刻度范围 |
| label(名称) | 设定图表标签图例 |
| xlabel(名称) | 设定x轴的名称 |
| ylabel(名称) | 设定y轴的名称 |
| xticks(刻度值) | 设定x轴刻度值 |
| yticks(刻度值) | 设定y轴刻度值 |
| tick_params() | 设定坐标轴的刻度大小、颜色 |
| legend() | 设定坐标的图例 |
| text() | 在坐标轴指定位置输出字符串 |
| grid() | 图表增加网格线 |
| show() | 显示图表 |
| cla() | 清除图表 |
| 函数名称 | 说明 |
| imread(文件名) | 读取图片文件 |
| savefig(文件名) | 将图片存入文件 |
常用语法格式如下:
plot(x, y, lw=x, ls='x', label='xxx', color)
x:x轴系列值。
y:y轴系列值。
lw:linewidth的缩写,折线图的线条宽度。预设线条宽度是1,参数设定线条的粗细。
ls:linestyle的缩写,折线图的线条样式。
color:缩写是c,设置色彩。
label:图表的标签
square[]列表有9笔数据代表y轴值,数据基本上是x轴索引0~8的平方值序列。
- import matplotlib.pyplot as plt
-
- x=[x for x in range(9)]
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(x,squares)
- plt.show()
运行结果:

省略x轴数据
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares)
- plt.show()
运行结果如同上一个实例。
将x轴刻度设为0~8,y轴刻度设为0~70。
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares)
- plt.axis(0,8,0,70)
- plt.show()
运行结果:

增加网络线
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares)
- plt.axis([0, 8, 0, 70])
- plt.grid()
- plt.show()
运行结果

设定线条宽度是10,使用lw=10。
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares,lw=10)
- plt.show()
运行结果

title(标题名称,fontsize=字号)
xlabel(标题名称,fontsize=字号)
ylabel(标题名称,fontsize=字号)
默认字号大小是12。
使用默认字号为图表与x、y轴建立标题。
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares,lw=10)
- plt.title('Test Chart')
- plt.xlabel('Value')
- plt.ylabel('Square')
- plt.show()
运行结果:

使用设定字号24建立图标标题,字号16建立x、y轴标题。
- import matplotlib.pyplot as plt
-
- squares=[0,1,4,9,16,25,36,49,64]
- plt.plot(squares,lw=10)
- plt.title('Test Chart',fontsize=24)
- plt.xlabel('Value',fontsize=16)
- plt.ylabel('Square',fontsize=16)
- plt.show()
运行结果:

在设计图表时可以使用tick_params()设计设定坐标轴的刻度大小、颜色以及应用范围。
tick_paramas(axis='xx', labelsize=xx, color='xx')
如果axis的xx是both,代表应用到x轴和y轴;如果xx是x,代表应用到x轴;如果xx是y,代表应用到y轴;
使用不同刻度与颜色绘制图表。
- import matplotlib.pyplot as plt
-
- squares = [0, 1, 4, 9, 16, 25, 36, 49, 64]
- plt.plot(squares, lw=10) # 列表squares数据是y轴的值, 线条宽度是10
- plt.title('Test Chart', fontsize=24)
- plt.xlabel('Value', fontsize=16)
- plt.ylabel('Square', fontsize=16)
- plt.tick_params(axis='both', labelsize=12, color='red')
- plt.show()
运行结果:

plot(seq,第一组数据,seq,第二组数据,...)
设计含多组数据的图表。
- import matplotlib.pyplot as plt
-
- data1 = [1, 4, 9, 16, 25, 36, 49, 64] # data1线条
- data2 = [1, 3, 6, 10, 15, 21, 28, 36] # data2线条
- seq = [1,2,3,4,5,6,7,8]
- plt.plot(seq, data1, seq, data2) # data1&2线条
- plt.title("Test Chart", fontsize=24)
- plt.xlabel("x-Value", fontsize=14)
- plt.ylabel("y-Value", fontsize=14)
- plt.tick_params(axis='both', labelsize=12, color='red')
- plt.show()
运行结果:

| 色彩字符 | 色彩说明 |
| 'b' | blue(蓝色) |
| 'c' | cyan(青色) |
| 'g' | green(绿色) |
| 'k' | black(黑色) |
| 'm' | magenta(品红) |
| 'r' | red(红色) |
| 'w' | white(白色) |
| 'y' | yellow(黄色) |
| 字符 | 说明 |
| ‘-’或‘solid’ | 实线 |
| ‘--’或‘dashed’ | 虚线 |
| ‘-.’或‘dashdot’ | 虚点线 |
| ‘:’或‘dotted’ | 点线 |
| ‘.’ | 点标记 |
| ‘,’ | 像素标记 |
| ‘o’ | 圆标记 |
| ‘v’ | 反三角标记 |
| ‘^’ | 三角标记 |
| ‘<’ | 左三角形 |
| ‘>’ | 右三角形 |
| ‘s’ | 方形标记 |
| ‘p’ | 五角标记 |
| ‘*’ | 星星标记 |
| ‘+’ | 加号标记 |
| ‘-’ | 减号标记 |
| ‘x’ | X标记 |
| ‘H’ | 六边形1标记 |
| ‘h’ | 六边形2标记 |
上述可以混合使用,例如‘r-.’代表红色虚点线。
采用不同色彩与线条样式绘制图表
- import matplotlib.pyplot as plt
-
- data1 = [1, 2, 3, 4, 5, 6, 7, 8] # data1线条
- data2 = [1, 4, 9, 16, 25, 36, 49, 64] # data2线条
- data3 = [1, 3, 6, 10, 15, 21, 28, 36] # data3线条
- data4 = [1, 7, 15, 26, 40, 57, 77, 100] # data4线条
-
- seq = [1, 2, 3, 4, 5, 6, 7, 8]
- plt.plot(seq, data1, 'g--', seq, data2, 'r-.', seq, data3, 'y:', seq, data4, 'k.')
- plt.title("Test Chart", fontsize=24)
- plt.xlabel("x-Value", fontsize=14)
- plt.ylabel("y-Value", fontsize=14)
- plt.tick_params(axis='both', labelsize=12, color='red')
- plt.show()

重新设计上图绘制线条 ,同时为各个点加上标记。
- import matplotlib.pyplot as plt
-
- data1 = [1, 2, 3, 4, 5, 6, 7, 8] # data1线条
- data2 = [1, 4, 9, 16, 25, 36, 49, 64] # data2线条
- data3 = [1, 3, 6, 10, 15, 21, 28, 36] # data3线条
- data4 = [1, 7, 15, 26, 40, 57, 77, 100] # data4线条
-
- seq = [1, 2, 3, 4, 5, 6, 7, 8]
- plt.plot(seq, data1, '-*', seq, data2, '-o', seq, data3, '-^', seq, data4, '-s')
- plt.title("Test Chart", fontsize=24)
- plt.xlabel("x-Value", fontsize=14)
- plt.ylabel("y-Value", fontsize=14)
- plt.tick_params(axis='both', labelsize=12, color='red')
- plt.show()
