机器学习_Matplotlib数据可视化

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
微软雅黑MicrosoftYaHei隶书
微软正黑体MicrosoftJhengHei幼圆
  • 恢复标准默认配置 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参数——常用颜色
颜色缩略字符颜色缩略字符
bluebblackK
greengwhitew
redrcyanc
yellowymagentam
  • marker参数——数据点样式
取值中文描述取值中文描述取值中文描述
-实线1朝下的三角v朝下的三角形
虚线2朝上的三角^朝上的三角形
-.点线3朝左的三角<朝左的三角形
:点虚线4朝右的三角>朝右的三角形
.s正方形D钻石形
,像素p五角形d小版钻石形
o圆形*星型|垂直线形
++号标记h1号六角形_水平线行
xx号标记H2号六角形

色彩映射

  • 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参数——指定图例的位置
取值图例位置取值图例位置
0best6center left
1upperright7
2upperleft8
3lowerleft9
4lowerright10
5right

三:折线图

  • 散点图的基础上,将相邻的点用线段相连接。
  • 描述变量变化的趋势

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()    #显示绘图

柱形图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值