seaborn和torchvision的部分操作

绘制核密度估计图(Kernel Density Estimation Plot)

这是以iris数据集为例的。 下面来看代码

sns.kdeplot(df_Setosa['sepal.length'], 
            fill = True, label = 'sepal length', color = 'g')

sns.kdeplot(df_Setosa['sepal.width'], 
            fill = True, label = 'sepal width', 
            color = 'blue')

sns.kdeplot(df_Setosa['petal.length'], 
            fill = True, label = 'petal length', color = 'r')


sns.kdeplot(df_Setosa['petal.width'], 
            fill = True, label = 'petal width', 
            color = 'deeppink')
plt.legend()
plt.show()

当然,这个代码还是可以优化的,就留给读者朋友喽!

torchvision

要在这上面动态的展示相关数据图片。

 

来看代码

 

import random
import torch.utils.data as data_utils
import torchvision

# 获取类别数
num_classes = len(dataset.classes)
samples_per_class = 90
total_samples = num_classes * samples_per_class

# 创建DataLoader以方便随机采样
dataloader = torch.utils.data.DataLoader(dataset, batch_size=samples_per_class, shuffle=True)

# 初始化存储图片的容器
images = []
for class_index in range(num_classes):
    # 随机获取一个批次,对于CIFAR-10这样的数据集,一个批次就是一类的所有图片
    batch = next(iter(dataloader))
    # 由于我们的批次已经是对应类别的所有图片,只需要从中随机抽取指定数量的样本
    selected_images = [batch[0][i] for i in random.sample(range(samples_per_class), samples_per_class)]
    images.extend(selected_images)

# 整理形式
images_grid = torchvision.utils.make_grid(images, nrow=10)

 在cmd中运行

tensorboard --logdir=runs

当然,要特别的注意:要在自己的代码文件目录下打开cmd运行这行命令;

 然后,copy

http://localhost:6006/

上述网址到浏览器中,访问,便能得到想要的第一张图了。  

联合分布图

sns.pairplot 是 seaborn 库中的一个功能,它用于绘制多变量数据集的联合分布图。Pairplot 通过创建一个矩阵式的图表布局,展示数据集中每一对数值型变量之间的关系,并在对角线上显示每个变量自身的单变量分布。

具体来说,sns.pairplot() 会执行以下操作:

  1. 对于数据集中任意两个数值型特征(列),它会绘制一个散点图或线性回归拟合线,以展示这两个特征之间的二维关系。
  2. 当某一对特征中存在分类变量时,它可能会使用不同颜色或标记形状来区分不同类别,并在同一幅散点图上展示不同类别的分布情况。
  3. 在对角线上,它会为每个数值型特征绘制单变量的直方图、核密度估计图或其他形式的分布图,帮助观察各个特征本身的分布特性。

通过 pairplot 可以快速概览整个数据集各变量间的相关性和分布特点,这对于数据探索(EDA, Exploratory Data Analysis)阶段非常有用,可以初步发现潜在的数据模式和异常值等信息

 

 

我们来看代码

_ = sns.pairplot(data=df, hue='species', diag_kind='kde',kind='hist')#'scatter', 'kde', 'hist', 'reg'

 当然可以修改其中的相关参数,然后达到搞出不同的、自己想要的那种图 

来画小提琴图

而且还是子图,并且还是优化后的子图,看到就是赚到。

fig, axes = plt.subplots(2, 2, figsize=(7, 5))
for i, column in enumerate(df.columns[:-1]):
    sns.violinplot(data=df,
                   x='species',
                   y=column,
                   hue='species',
                   ax=axes[i // a, i % b])

 

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellostar06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值