机器学习_Matplotlib数据可视化
Matplotlib数据可视化一:Matplotlib绘图基础Matplotlib: 第三方库,可以快速方便地生成高质量的图表1.数据可视化数据分析阶段:理解和洞察数据之间的关系算法调试阶段:发现问题,优化算法项目总结阶段:展示项目成果2.Matplotlib库的安装和导入安装Anaconda: 安装了anaconda之后,Matplotlib就已经被安装好了pip安装 pip install m
Matplotlib数据可视化
一:Matplotlib绘图基础
Matplotlib: 第三方库,可以快速方便地生成高质量的图表
1.数据可视化
- 数据分析阶段:理解和洞察数据之间的关系
- 算法调试阶段:发现问题,优化算法
- 项目总结阶段:展示项目成果
2.Matplotlib库的安装和导入
安装
- Anaconda: 安装了anaconda之后,Matplotlib就已经被安装好了
- pip安装 pip install matplotlib
导入
- import matplotlib.pyplot as plt
3.Figure对象:创建画布
figure( num,figsize,dpi,facecolor,edgecolor,frameon )
- num:图形编号或名称,取值为数字/字符串。
- figsize:绘图对象的宽和高,单位为英寸。
- dpi:绘图对象的分辨率,缺省值为80。
- facecolor:背景颜色。
- edgecolor:边框颜色。
- frameon:表示是否显示边框。
4. subplot()函数:划分子图
subplot( 行数, 列数, 子图序号 )
- 当subplot()函数中的3个参数都小于10时,可以省略参数间的逗号,用一个3位数来表示
- 每个subplot()函数只创建一个子图。要创建4个子图,就需要4条语句
5.设置中文字体及字符显示
plt.rcParams [" font.sans-serif" ] = “SimHei”
- plt.rcParams:运行配置参数 :指定所绘制图表中的各种默认属性,是matplotlib中的全局变量
- [" font.sans-serif" ] 字体
| 中文字体 | 英文描述 | 中文字体 | 英文描述 |
|---|---|---|---|
| 宋体 | SimSun | 楷体 | KaiTi |
| 黑体 | SimHei | 仿宋 | FangSong |
| 微软雅黑 | Microsoft | YaHei | 隶书 |
| 微软正黑体 | Microsoft | JhengHei | 幼圆 |
- 恢复标准默认配置 plt.rcdefaults( )
- 字符显示 plt.rcParams[’axes.unicode_minus’] = False
6.添加标题
添加全局标题 plt.suptitle ( 标题文字 )
- suptitle()函数的主要参数
| 参 数 | 说 明 | 默认值 |
|---|---|---|
| x | 标题位置的x坐标 | 0.5 |
| y | 标题位置的y坐标 | 0.98 |
| color | 标题颜色 | 黑色 |
| backgroundcolor | 标题背景颜色 | 12 |
| fontsize | 标题的字体大小 | |
| fontweight | 字体粗细 | normal |
| fontstyle | 设置字体类型 | |
| horizontalalignment | 标题水平对齐方式 | center |
| verticalalignment | 标题的垂直对齐方式 | top |
添加子图标题 title ( 标题文字 )
- title()函数的主要参数
| 参 数 | 说 明 | 默认值 |
|---|---|---|
| loc | 标题位置 | left,right |
| rotation | 标题文字旋转角度 | |
| color | 标题颜色 | 黑色 |
| fontsize | 标题的字体大小 | |
| fontweight | 字体粗细 | normal |
| fontstyle | 设置字体类型 | |
| horizontalalignment | 标题水平对齐方式 | center |
| verticalalignment | 标题的垂直对齐方式 | top |
| fontdict | 设置参数字典 |
7.tight_layout()函数
自动调整子图
- 检查坐标轴标签、刻度标签、和子图标题,自动调整子图,使之填充整个绘图区域,并消除子图之间的重叠。
tight_layout( rect=[left, bottom, right, top] )
二:散点图
1.什么是散点图
散点图 (Scatter):是数据点在直角坐标系中的分布图
- 数据分布规律;数据变化趋势;数据分组

2.绘制散点图 scatter() 函数
scatter( x, y, scale, color, marker, label )
| 参 数 | 说 明 | 默认值 |
|---|---|---|
| x | 数据点的x坐标 | 不可省略 |
| y | 数据点的y坐标 | 不可省略 |
| scale | 数据点的大小 | 36 |
| color | 数据点的颜色 | |
| marker | 数据点的样式 | ’o’(圆点) |
| label | 图例文字 |
- color参数——常用颜色
| 颜色 | 缩略字符 | 颜色 | 缩略字符 |
|---|---|---|---|
| blue | b | black | K |
| green | g | white | w |
| red | r | cyan | c |
| yellow | y | magenta | m |
- marker参数——数据点样式
| 取值 | 中文描述 | 取值 | 中文描述 | 取值 | 中文描述 |
|---|---|---|---|---|---|
| - | 实线 | 1 | 朝下的三角 | v | 朝下的三角形 |
| – | 虚线 | 2 | 朝上的三角 | ^ | 朝上的三角形 |
| -. | 点线 | 3 | 朝左的三角 | < | 朝左的三角形 |
| : | 点虚线 | 4 | 朝右的三角 | > | 朝右的三角形 |
| . | 点 | s | 正方形 | D | 钻石形 |
| , | 像素 | p | 五角形 | d | 小版钻石形 |
| o | 圆形 | * | 星型 | | | 垂直线形 |
| + | +号标记 | h | 1号六角形 | _ | 水平线行 |
| x | x号标记 | H | 2号六角形 |
色彩映射
- plt.scatter(x, y, c , cmap )
- 将参数c指定为一个列表或数组,所绘制图形的颜色,可以随这个列表或数组中元素的值而变换,变换所对应的颜色由参数cmap中的颜色所提供
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y = np.arange(10)
dot_color = [1,2,1,0,2,0,1,2,1,0]
plt.scatter(x,y,c=dot_color,cmap='brg') #0:blue;red:1;green:2

3.添加文字 text() 函数
text( x, y, s, fontsize,color )
| 参 数 | 说 明 | 默认值 |
|---|---|---|
| x | 文字的x坐标 | 不可省略 |
| y | 文字的y坐标 | 不可省略 |
| s | 显示的文字 | 不可省略 |
| fontsize | 文字的大小 | 12 |
| color | 文字的颜色 | 黑色 |
4.坐标轴设置
| 函数 | 说明 |
|---|---|
| xlabel( x, y, s, fontsize,color) | 设置x轴标签 |
| ylabel( x, y, s, fontsize,color) | 设置y轴标签 |
| xlim(xmin, xmax) | 设置x轴坐标的范围 |
| ylim(ymin, ymax) | 设置y轴坐标的范围 |
| tick_params(labelsize) | 设置刻度文字的字号 |
# 绘制标准正态分布的散点图
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']="SimHei" #设置默认字体为中文黑体
plt.rcParams['axes.unicode_minus'] = False #字符显示
n=1024 # 标准正态分布的散点坐标
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
plt.scatter(x, y, color="blue",marker='*' ) #绘制数据点
plt.title("标准正态分布",fontsize=20) #设置标题
plt.text(2.5,2.5,"均值:0\n标准差:1") #设置文本
plt.xlim(-4,4) #x轴范围
plt.ylim(-4,4) #y轴范围
plt.xlabel('横坐标',fontsize=14)
plt.ylabel('纵坐标',fontsize=14)
plt.show()

5.增加图例
scatter( x, y, scale, color, marker, label ) label指定图例内容
legend(loc, fontsize) 显示图例
- loc参数——指定图例的位置
| 取值 | 图例位置 | 取值 | 图例位置 |
|---|---|---|---|
| 0 | best | 6 | center left |
| 1 | upper | right | 7 |
| 2 | upper | left | 8 |
| 3 | lower | left | 9 |
| 4 | lower | right | 10 |
| 5 | right |
三:折线图
- 散点图的基础上,将相邻的点用线段相连接。
- 描述变量变化的趋势
1.绘制折线图 plot()函数
plot( x, y, color, marker, label, linewidth, markersize )
| 参 数 | 说 明 | 默认值 |
|---|---|---|
| x | 数据点的x坐标 | 0,1,2,3… |
| y | 数据点的y坐标 | 不可省略 |
| color | 数据点的颜色 | |
| marker | 数据点的样式 | ’o’(圆点) |
| label | 图例文字 | |
| linewidth | 折线的宽度 | |
| markersize | 数据点的大小 |
二:柱形图
由一系列高度不等的柱形条纹表示数据分布的情况
1.绘制柱形图 bar()函数
bar( left, height, width, facecolor, edgecolor, label )
#绘制柱形图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']="SimHei" #设置默认字体为中文黑体
plt.rcParams['axes.unicode_minus'] = False #字符显示
y1=[32,25,16,30,24,45,40,33,28,17,24,20]
y2=[-23,-35,-26,-35,-45,-43,-35,-32,-23,-17,-22,-28]
plt.bar(range(len(y1)),y1,width=0.8,facecolor='green',edgecolor='white',label='统计量1')
plt.bar(range(len(y2)),y2,width=0.8,facecolor='red',edgecolor='white',label='统计量2')
plt.title("柱状图",fontsize=20) #添加标题
plt.legend() #显示图例
plt.show() #显示绘图

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)