matplotlib一维散点分布图的实现

 更新时间:2023年03月10日 09:52:40   作者:夜半罟霖  
本文主要介绍了matplotlib一维散点分布图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

引言

本次的目标是绘制数据的一维散点分布图,应用场景是数据一维标签的聚类可视化,假定我们拥有原始的带标签数据 ( X , y ) (X,y) (X,y)其中 X X X为样本特征矩阵, y y y为对应样本的标签(连续值),通过聚类算法得到了 X X X的伪分类标签 y ^ , y ^ ∈ ( 1 , 2 , . . . , N ) \hat{y}, \hat{y}\in(1,2,...,N) y^​,y^​∈(1,2,...,N),想要绘制出相同类别样本在标签值是否同样是集中的。
值得注意的是,由于我们可能获得多类样本,因此仅仅使用一张图来进行绘制可能会使得不同类别样本的marker在图上相互重叠,因此需要为每一类样本单独绘制一维散点分布图,并在同一张画布上显示。

方法

为了显示一维的单张散点分布图,我们需要对matplotlib默认的二维画布进行调整,将其余三条轴线都设置为不可见,只保留底部的轴线,进一步的,要把纵轴label的位置向图左端移动(否则在横轴包括负半轴时,label会出现在图中央),实例代码如下:

axs.spines['top'].set_visible(False)
axs.spines['right'].set_visible(False)
axs.spines['left'].set_visible(False)
axs.yaxis.set_ticks_position('left')
axs.set_xlim((-0.05,1.05))
axs.set_ylim((0,1))
axs.set_yticks([0],labels=['score'])

对于多张一维散点图的绘制,只需要利用subplot函数,对子图重复进行上述操作即可。整体代码如下:

def score_distr(group,x_lim=(-0.1,1.1),y_lim=(-0.1,1.1)):
    '''
    可视化N个类别中每个样本的y分布
    :param group: List[np.ndarray], N类样本标签y组成的数组
    :param x_lim: 横坐标区间
    :param y_lim: 纵坐标区间
    :return:
    '''
    group_num=len(group)
    color_map=["violet","tomato","cyan","salmon","limegreen"]
    fig,axs=plt.subplots(group_num,1)
    dem_labels=[]
    for i in range(group_num):
        axs[i].scatter(group[i],[0.05]*group[i].shape[0],label="class_"+str(i),c=color_map[i])
        # axs[i].xlim(x_lim)
        dem_labels.append("class_"+str(i))
        axs[i].spines['top'].set_visible(False)
        axs[i].spines['right'].set_visible(False)
        axs[i].spines['left'].set_visible(False)
        axs[i].yaxis.set_ticks_position('left')
        axs[i].set_xlim(x_lim)
        axs[i].set_ylim(y_lim)
        axs[i].set_yticks([0],labels=['score'])
    fig.legend(dem_labels,loc=(0.45,0.85))

测试结果

给出示例代码及对应结果如下:

test=[]
for i in range(3):
    test.append(np.random.rand(15))
score_distr(test,x_lim=(-1.05,1.05))

结果:

在这里插入图片描述

参考

可视化: Python—MatPlotLib—一维散点图

到此这篇关于matplotlib一维散点分布图的实现的文章就介绍到这了,更多相关matplotlib一维散点分布图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 格式化打印json数据方法(展开状态)

    Python 格式化打印json数据方法(展开状态)

    今天小编就为大家分享一篇Python 格式化打印json数据方法(展开状态),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 实操Python爬取觅知网素材图片示例

    实操Python爬取觅知网素材图片示例

    大家好,本篇文章介绍的是实操Python爬取觅知网素材图片示例,感兴趣的朋友赶快来看一看吧,对你有用的话记得收藏起来,方便下次浏览
    2021-11-11
  • 通过PHP与Python代码对比的语法差异详解

    通过PHP与Python代码对比的语法差异详解

    这篇文章主要介绍了通过PHP与Python代码对比浅析语法差异,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python中实现地图可视化的方法小结

    Python中实现地图可视化的方法小结

    Python提供了多个强大的库,如Folium、Matplotlib、Geopandas等,使得创建漂亮而具有信息量的地图变得简单而灵活,本文将详细介绍如何使用这些库绘制漂亮的地图,感兴趣的可以了解下
    2023-12-12
  • Python-OpenCV中的cv2.inpaint()函数的使用

    Python-OpenCV中的cv2.inpaint()函数的使用

    大多数人会在家里放一些旧的退化照片,上面有一些黑点,一些笔画等。你有没有想过恢复它?本文就来介绍一下方法,感兴趣的可以了解一下
    2021-06-06
  • pandas的qcut()方法详解

    pandas的qcut()方法详解

    这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python实现计算AUC的示例代码

    Python实现计算AUC的示例代码

    AUC(Area under curve)是机器学习常用的二分类评测手段,直接含义是ROC曲线下的面积。本文将利用Python语言实现计算AUC,感兴趣的可以学习一下
    2022-07-07
  • python实现的简单FTP上传下载文件实例

    python实现的简单FTP上传下载文件实例

    这篇文章主要介绍了python实现的简单FTP上传下载文件的方法,实例分析了Python基于FTP模块实现文件传输的技巧,需要的朋友可以参考下
    2015-06-06
  • python数据处理之如何选取csv文件中某几行的数据

    python数据处理之如何选取csv文件中某几行的数据

    这篇文章主要给大家介绍了关于python数据处理之如何选取csv文件中某几行的数据的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Python3读取文件常用方法实例分析

    Python3读取文件常用方法实例分析

    这篇文章主要介绍了Python3读取文件常用方法,以实例形式较为详细的分析了Python一次性读取、逐行读取及读取文件一部分的实现技巧,需要的朋友可以参考下
    2015-05-05

最新评论