我的编程空间,编程开发者的网络收藏夹
学习永远不晚

matplotlib一维散点分布图的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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一维散点分布图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

matplotlib一维散点分布图的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

matplotlib一维散点分布图的实现

本文主要介绍了matplotlib一维散点分布图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-10

matplotlib如何实现一维散点分布图

这篇“matplotlib如何实现一维散点分布图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“matplotlib如何实现一
2023-07-05

用matplotlib实现数据集散点图的实际应用

实战演练:利用Matplotlib绘制数据集的散点图Matplotlib是Python中常用的绘图库之一,它提供了丰富的功能,可以绘制各种类型的图表。其中,散点图是一种常用的数据可视化方式,用于展示两个变量之间的关系。本文将介绍如何利用M
用matplotlib实现数据集散点图的实际应用
2024-01-17

Java在PPT中创建散点图的实现方法是什么

这篇文章主要讲解了“Java在PPT中创建散点图的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java在PPT中创建散点图的实现方法是什么”吧!创建图表前需要在Java程序中
2023-06-25

怎么在R语言中实现一个t分布正态分布分位数图

怎么在R语言中实现一个t分布正态分布分位数图?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如何用RStudio做分位数图呢?#分位数图,画t分布密度带p值x=s
2023-06-14

分布式 | DBLE 是如何实现视图的?

作者:苏仕祥浩鲸科技 PaaS 组件团队成员,长期从事分库分表中间件的相关解决方案工作,热爱技术,乐于分享。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文主要讲解 DBLE 是如何实现 MySQL 视图功能
分布式 | DBLE 是如何实现视图的?
2014-11-17

Python+seaborn实现联合分布图的绘制

联合分布(JointDistribution)图是一种查看两个或两个以上变量之间两两相互关系的可视化图,在数据分析操作中经常需要用到。本文将通过seaborn实现绘制联合分布图,需要的可以参考一下
2023-02-17

怎么在matplotlib中利用bar()函数实现一个百分比堆积柱状图

怎么在matplotlib中利用bar()函数实现一个百分比堆积柱状图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。适用于少量数据,数据结构需要手动构造。import ma
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录