实现散点图功能的方法和系统技术领域
本发明涉及散点画图领域,特别是涉及一种实现散点图功能的方法和系统。
背景技术
随着数字PCR的发展,软件方面数据处理也呈现指数增长,由几十万增长到几千万
的数据。一般在画散点图时,少则几十万的数据点,多则上千万个数据点,使用传统的画散
点图的方法,软件很容易出现卡顿的现象,甚至宕机,并且当数据大量增加时,画出来的散
点图效果用肉眼无法区分,因此,传统的实现散点图功能的方法画图清晰度低。
发明内容
基于此,有必要针对上述问题,提供一种画图清晰度高的实现散点图功能的方法
和系统。
一种实现散点图功能的方法,包括以下步骤:
获取坐标系内的数据数量、所述坐标系在面板中的参数和所述坐标系内的原始数
据坐标;
判断所述坐标系中的数据数量是否大于预设阈值;
当所述坐标系中的数据数量大于预设阈值时,根据所述坐标系在面板中的参数将
所述坐标系内的原始数据坐标转换为所述面板的像素坐标;
过滤所述面板的像素坐标,得到过滤后的像素坐标;
根据所述过滤后的像素坐标画图并在所述面板显示。
一种实现散点图功能的系统,包括:
获取模块,用于获取坐标系内的数据数量、所述坐标系在面板中的参数和所述坐
标系内的原始数据坐标;
判断模块,用于判断所述坐标系中的数据数量是否大于预设阈值;
第一转换模块,用于当所述坐标系中的数据数量大于预设阈值时,根据所述坐标
系在面板中的参数将所述坐标系内的原始数据坐标转换为所述面板的像素坐标;
过滤模块,用于过滤所述面板的像素坐标,得到过滤后像素坐标;
画图模块,用于根据所述过滤后的像素坐标画图并在所述面板显示。
上述实现散点图功能的方法和系统,在坐标系内的数据数量大于预设阈值时,将
坐标系内的原始数据坐标转换为面板的像素坐标,并过滤掉近似相等的像素坐标,精简数
据数量,最后根据过滤后的像素坐标画图,得出的图像不会失真,清晰度高。
附图说明
图1为一实施例中实现散点图功能的方法流程图;
图2为一实施例中实现散点图功能的系统结构图。
具体实施方式
在一个实施例中,如图1所示,一种实现散点图功能的方法,包括以下步骤:
步骤S110:获取坐标系内的数据数量、坐标系在面板中的参数和坐标系内的原始
数据坐标。
具体地,坐标系在面板中的参数包括坐标系在面板中的起始坐标,坐标系的宽、坐
标系的高、坐标系横坐标的最小刻度、最大刻度和坐标系纵坐标的最小刻度和最大刻度。
步骤S120:判断坐标系中的数据数量是否大于预设阈值。
具体地,依据使用不经过数据过滤直接画图时,出现操作图形卡顿现象,根据目前
的测试,数据量大于100万时,为数据量大,因此,在本实施例中,预设阈值为100万。
步骤S130:当坐标系中的数据数量大于预设阈值时,根据坐标系在面板中的参数
将坐标系内的原始数据坐标转换为面板的像素坐标。
具体地,步骤S130包括:
Xrs=Xc/(Xa-Xi)*(a-Xi)+w
Yrs=Yc-Yc/(Ya-Yi)*(b-Yi)+h
其中,(w,h)为坐标系在面板中的起始坐标,坐标系的宽为Xc,高为Yc,坐标系的横
坐标的最小刻度为Xi,最大刻度为Xa,纵坐标的最小刻度为Yi,最大刻度为Ya,(a,b)为坐标
系内的任一原始数据坐标,(Xrs,Yrs)为转换为面板的像素坐标。
步骤S140:过滤面板的像素坐标,得到过滤后的像素坐标。具体地,步骤S140包括:
以任一像素坐标为圆心,以预设长度为半径为圆,分别判断面板中其余任一像素坐标是否
在对应圆内,具体为:
(x-x0)*(x-x0)+(y-y0)*(y-y0)<=r*r
其中,(x0,y0)为任一像素坐标,即圆心,r为半径,(x,y)为其余任一像素坐标。
若其余任一像素坐标在圆内,则过滤其余任一像素坐标,得到过滤后像素坐标,即
在同一个圆的范围内归为同一点。对于已经属于某个圆范围内的点不再重复计算,即一个
点只属于一个圆的范围。
或步骤S140包括:对于面板的像素坐标取整或者保留预设位小数进行过滤,得到
过滤后像素坐标。
具体地,对于某个点(x,y),只采取取整或者保留若干位小数的方法。取整,即a=
(int)x,b=(int)y,变换后为点(a,b),假设x=3.14171635,y=1.71376843,保留两位小
数,即变为(3.14,1.71),变换后坐标一致的为一个点,有效精简数据。
步骤S150:根据过滤后的像素坐标画图并在面板显示。在本实施例中,步骤S150包
括步骤152和步骤154。
步骤152:坐标系在面板中的参数包括坐标系在面板中的起始坐标,坐标系的宽、
高、横坐标的最小刻度、最大刻度和纵坐标的最小刻度和最大刻度,根据坐标系在面板中的
参数将过滤后的像素坐标转换为数据坐标。具体地,步骤152包括:
A=(Xrs’-w)*(Xa-Xi)/Xc+Xi
B=(Yc+h–Yrs’)*(Ya-Yi)/Yc+Yi
其中,(w,h)为坐标系在面板中的起始坐标,坐标系的宽为Xc,高为Yc,坐标系的横
坐标的最小刻度为Xi,最大刻度为Xa,纵坐标的最小刻度为Yi,最大刻度为Ya,(Xrs’,Yrs’)
为面板内过滤后的任一像素坐标,(A,B)为转换为坐标系的数据坐标。
步骤154:根据数据坐标画图并在面板显示。
上述实现散点图功能的方法,在坐标系内的数据数量大于预设阈值时,将坐标系
内的原始数据坐标转换为面板的像素坐标,并过滤掉近似相等的像素坐标,精简数据数量,
最后根据过滤后的像素坐标画图,实现数字PCR软件中一维和二维散点图画图功能,得出的
图像不会失真,清晰度高。
在一个实施例中,如图2所示,一种实现散点图功能的系统,包括获取模块110、判
断模块120、第一转换模块130、过滤模块140和画图模块150,获取模块110连接判断模块
120,判断模块120连接第一转换模块130,第一转换模块130连接过滤模块140,过滤模块140
连接画图模块150。
在一个实施例中,获取模块110用于获取坐标系内的数据数量、坐标系在面板中的
参数和坐标系内的原始数据坐标。
具体地,坐标系在面板中的参数包括坐标系在面板中的起始坐标,坐标系的宽、坐
标系的高、坐标系横坐标的最小刻度、最大刻度和坐标系纵坐标的最小刻度和最大刻度。
在一个实施例中,判断模块120用于判断坐标系中的数据数量是否大于预设阈值。
具体地,依据使用不经过数据过滤直接画图时,出现操作图形卡顿现象,根据目前
的测试,数据量大于100万时,为数据量大,因此,在本实施例中,预设阈值为100万。
在一个实施例中,第一转换模块130用于当坐标系中的数据数量大于预设阈值时,
根据坐标系在面板中的参数将坐标系内的原始数据坐标转换为面板的像素坐标。
具体地,坐标系在面板中的参数包括坐标系在面板中的起始坐标,坐标系的宽、
高、横坐标的最小刻度、最大刻度和纵坐标的最小刻度和最大刻度,第一转换模块130包括:
Xrs=Xc/(Xa-Xi)*(a-Xi)+w
Yrs=Yc-Yc/(Ya-Yi)*(b-Yi)+h
其中,(w,h)为坐标系在面板中的起始坐标,坐标系的宽为Xc,高为Yc,坐标系的横
坐标的最小刻度为Xi,最大刻度为Xa,纵坐标的最小刻度为Yi,最大刻度为Ya,(a,b)为坐标
系内的任一原始数据坐标,(Xrs,Yrs)为转换为面板的像素坐标。
在一个实施例中,过滤模块140用于过滤面板的像素坐标,得到过滤后像素坐标。
过滤模块140包括第一过滤单元或第二过滤单元。
具体地,第一过滤单元用于以任一像素坐标为圆心,以预设长度为半径为圆,分别
判断面板中其余任一像素坐标是否在对应圆内,具体为:
(x-x0)*(x-x0)+(y-y0)*(y-y0)<=r*r
其中,(x0,y0)为任一像素坐标,即圆心,r为半径,(x,y)为其余任一像素坐标。
若其余任一像素坐标在圆内,则过滤其余任一像素坐标,得到过滤后像素坐标。
第二过滤单元用于对于面板的像素坐标取整或者保留预设位小数进行过滤,得到
过滤后像素坐标。
在一个实施例中,画图模块150用于根据过滤后的像素坐标画图并在面板显示。画
图模块150包括第二转换单元和画图单元。
坐标系在面板中的参数包括坐标系在面板中的起始坐标,坐标系的宽、高、横坐标
的最小刻度、最大刻度和纵坐标的最小刻度和最大刻度,第二转换单元用于根据坐标系在
面板中的参数将过滤后像素坐标转换为数据坐标。具体地,第二转换单元包括:
A=(Xrs’-w)*(Xa-Xi)/Xc+Xi
B=(Yc+h–Yrs’)*(Ya-Yi)/Yc+Yi
其中,(w,h)为坐标系在面板中的起始坐标,坐标系的宽为Xc,高为Yc,坐标系的横
坐标的最小刻度为Xi,最大刻度为Xa,纵坐标的最小刻度为Yi,最大刻度为Ya,(Xrs’,Yrs’)
为面板内过滤后的任一像素坐标,(A,B)为转换为坐标系的数据坐标。
上述实现散点图功能的系统,在坐标系内的数据数量大于预设阈值时,将坐标系
内的原始数据坐标转换为面板的像素坐标,并过滤掉近似相等的像素坐标,精简数据数量,
最后根据过滤后的像素坐标画图,得出的图像不会失真,清晰度高。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实
施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存
在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护
范围。因此,本发明专利的保护范围应以所附权利要求为准。