机器学习——seaborn实用画图方法简介

news/2024/7/5 1:57:03

0、seaborn简介:

  • 前言:下面的总结只是介绍seaborn有哪些方法和属性,至于具体使用,通过下面给出的名称稍作查找即可。重点应该关注本文介绍的seaborn的使用方法
  • seaborn与机器学习的关系:
    在这里插入图片描述
  • 知识图谱
    在这里插入图片描述
0.1、了解即可的知识:
  • seaborn:在matplotlib的基础上画一些更好看的图,在进行探索性数据分析时会常用到,对于seaborn需要做简单了解,掌握对应画法的查询方法。
  • 官网:https://seaborn.pydata.org/
  • 下载方法:在控制界面输入“pip install seaborn”

  • 如果seaborn版本不是最新,可以跟新:“pip install --upgrade seabron”
  • seaborn中也自带一些数据集,通过属性调用就可以查看:“get_dataset_names()”,要调用这些数据集要通过调用方法:load_dataset(“数据集名称”)
  • 设置seaborn主题风格的方法:set_style(“风格名称”) # darkgrid、whitegrid、dark、white、ticks
  • 在seaborn中可以通过despine()方法去掉不需要的边框,这种操作在matplotlib中是无法实现的。通过其中的offset参数可以设置图形到轴线的距离。
  • set_context()方法可以设置图形当中内容的格式,比如字体大小之类的。
  • 在seaborn中绘制子图可以将风格的使用控制在一定的作用范围内
f = plt.figure(figsize=(10,4))
# 子图
with sns.axes_style('dark'):
    f.add_subplot(1,2, 1) # 1行2列排第1个
    sinplot()

  • 离散型颜色调色板:
    1、seaborn默认的颜色是六种,如果面对分类问题大于六种时,就可以使用hls颜色空间来划分,例如需要有n种不同颜色时,就可以调用sns.color_palette(‘hls’, n),调色板在seaborn中就相当于一个参数了。
    2、亮度和饱和度:”sns.hls_palette(n,l=‘亮度数值’,‘饱和度数值’)“
  • 连续性颜色调色板:
    1、颜色有浅到深:“sns.color_palette(‘‘颜色名称’)”
    2、颜色有深到浅:“sns.color_palette(’‘颜色名称_r’)”
    3、其他方法:“sns.cubehelix_palette(n, start=数值, rot=数值)”,“sns.light_palette(“颜色名称”)”
    4、对于颜色问题,大部分时间使用默认的即可

0.2、★★★seaborn使用重点
  • 单变量分析(单个特征数据分布情况查看):直方图,会根据数据自动生成每个柱子(bins)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import seaborn as sns
sns.set()   # 使用seaborn默认设置

x = np.random.normal(size=100) # 随机生成高斯分布的数据
display(x.shape)
sns.displot(x,kde=False)  # 直方图,kde为核密度估计,通过bins参数可以设置柱子的个数

在这里插入图片描述

  • 观测两个变量之间关系最好用的就是散点图:
mean = [0, 1]
cov = [[1, 0.5], [0.5, 1]] # 协方差

# 创建2维的正态分布
data = np.random.multivariate_normal(mean, cov, 200)
# data

df = pd.DataFrame(data=data, columns=['x','y'])
df

# 画双变量图
# sns.jointplot(x='x', y='y', data=df)

sns.jointplot(x='x', y='y', data=df)

在这里插入图片描述
散点图中可能会有点重叠在一起,所以可以通过下面的hex图来看到散点图的同时看到数据密度分布

mean = [0, 1]
cov = [[1, 0.5], [0.5, 1]] # 协方差

# # 创建2维的正态分布
data = np.random.multivariate_normal(mean, cov, 1000)
# data

df = pd.DataFrame(data=data, columns=['x','y'])
df
with sns.axes_style('white'):
    sns.jointplot(x=

http://lihuaxi.xjx100.cn/news/1572917.html

相关文章

基础练习 查找整数

问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输…

python LeetCode 刷题记录 100

题目 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 代码 # Definition for a binary tree node. # class TreeNode: # def __init__(se…

2023 ICPC 网络赛 第二场 部分题解 (待完善)

D Project Manhattan 思路&#xff1a; 最终选中的下标,必然包含n个行或者n个列. 所以答案 n行的最小值之和或者n列的最小值之和 注意坑点&#xff1a; 当存在负数时&#xff0c;应该把负数全部选上,答案只会更优. 代码&#xff1a; #include <bits/stdc.h> typed…

【ccf-csp题解】第5次csp认证-第三题-模板生成系统-字符串模拟

题目描述 思路分析 这个是一个简单的字符串模拟题&#xff0c;但蕴藏了一些细节值得挖掘&#xff0c;故写于博客之中进行记录。 第一、关于数据的读入 对于前m行&#xff0c;直接使用getline函数进行读入即可&#xff0c;注意在读取完m和n之后&#xff0c;要写一个getchar&a…

最长连续递增子序列

给定一个顺序存储的线性表&#xff0c;请设计一个算法查找该线性表中最长的连续递增子序列。例如&#xff0c;(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n&#xff08;≤105&#xff09;&#xff1b;第2行给出n个整数&#xff0c;…

微调大模型工具-LoRA

介绍 微调 在机器学习领域&#xff0c;大型模型已成为解决各种问题的首选解决方案。从自然语言处理到计算机视觉&#xff0c;这些计算能力的庞然大物都表现出了无与伦比的性能。然而&#xff0c;这种性能实际上是有代价的。微调这些大型模型以适应特定任务或领域是一个资源密…

web前端项目案例实战

之前也有使用vite2vue3electronc创建桌面端项目&#xff0c;不过 vue-cli-plugin-electron-builder 脚手架插件构建的项目electron版本只有13.x。如今electron版本都到了24&#xff0c;显然不能再用之前的方法创建项目了。于是闲暇时间就捣鼓了electron24vite4搭建桌面程序&…

Ubantu GoLand安装

下载GoLand 下载Linux版的压缩包 解压到usr/local tar -C /usr/local -xzf gox.x.x.linux-amd64.tar.gz -xzf 后面是下载goland的全名 确保golang 已经正常安装&#xff0c;参考Golang Linux 安装与环境变量配置_一零壹0的博客-CSDN博客 启动GoLand cd 到解压目录下 cd …