CN113553368A - 多层饼图的标签信息处理方法、装置及终端 - Google Patents
多层饼图的标签信息处理方法、装置及终端 Download PDFInfo
- Publication number
- CN113553368A CN113553368A CN202010337274.5A CN202010337274A CN113553368A CN 113553368 A CN113553368 A CN 113553368A CN 202010337274 A CN202010337274 A CN 202010337274A CN 113553368 A CN113553368 A CN 113553368A
- Authority
- CN
- China
- Prior art keywords
- label information
- lead
- data item
- angle
- pie chart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种多层饼图的标签信息处理方法、装置及终端,属于互联网技术领域。方法包括:获取待处理的多层饼图;获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息;根据数据占比,确定标签信息的第一初始位置和标签信息的引线的第二初始位置;根据第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置;根据第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置;根据第一目标位置和第二目标位置,显示数据项。上述方法可以避免多层饼图的标签信息出现隐藏或者堆叠,从而提高标签信息展示量,并且,引线很好地支持了多层饼图的标签信息的展示。
Description
技术领域
本公开涉及互联网技术领域,特别涉及一种多层饼图的标签信息处理方法、装置及终端。
背景技术
饼图的标签信息是一种描述饼图中每一项数据所包含信息的文本的集合,能直观的展示饼图所包含的数据信息,饼图的标签信息的显示能帮助用户快速的了解饼图中的数据分布、数据类型以及比例关系。
相关技术中,一般在饼图周围的固定位置设置固定数量的卡槽,卡槽用于显示饼图的标签信息,根据饼图的标签信息对应的扇形区域的位置和饼图的半径,将标签信息映射到对应的卡槽,在卡槽中显示标签信息。
相关技术存在的问题是,由于卡槽的位置和数量是固定的,当饼图的标签信息较多,出现多个标签信息映射到一个卡槽的情况,该卡槽中多余的标签信息就会被隐藏,从而导致饼图的标签信息显示不全。
发明内容
本公开实施例提供了一种多层饼图的标签信息处理方法、装置及终端,支持多层饼图的标签信息显示,并且可以避免标签信息出现隐藏或堆叠,从而提高饼图的标签信息展示量。所述技术方案如下:
第一方面,提供了一种多层饼图的标签信息处理方法,所述方法包括:
获取待处理的多层饼图,所述多层饼图为通过数据可视化应用生成的;
获取所述多层饼图对应的至少两个数据项,所述数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息;
根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,所述引线用于从所述数据项对应的扇形区域引出至所述数据项包括的标签信息;
根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置;
根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置;
根据所述第一目标位置和所述第二目标位置,显示所述数据项。
在一种可能的实现方式中,所述根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置,包括:
获取所述标签信息的第一显示间距,所述第一显示间距是所述标签信息与相邻标签信息分隔显示时的距离;
根据所述第一显示间距和所述标签信息的第一初始位置,确定所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述根据所述第一显示间距和所述标签信息的第一初始位置,确定所述标签信息的第一目标位置,包括:
以所述多层饼图的中心的位置为坐标原点,根据所述标签信息的第一初始位置,确定所述标签信息所在的象限;
根据所述标签信息所在的象限,确定所述标签信息所在的分组,所述标签信息所在的分组为第一组或者第二组,所述第一组中的标签信息用于显示在所述多层饼图的左侧,所述第二组中的标签信息用于显示在所述多层饼图的右侧;
根据所述标签信息的第一初始位置确定所述标签信息的纵坐标;
根据所述标签信息的第一显示间距、所述纵坐标和所述标签信息所在的分组,确定所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述根据所述标签信息的第一显示间距、所述纵坐标和所述标签信息所在的分组,确定所述标签信息的第一目标位置,包括:
获取所述标签信息所在分组的上一个标签信息的纵坐标;
确定所述标签信息的纵坐标和所述上一个标签信息的纵坐标之间的差值;
响应于所述差值小于所述第一显示间距,将所述上一个标签信息的纵坐标和所述第一显示间距的差值确定为所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置,包括:
获取所述引线的第一显示角度,所述第一显示角度是所述引线与相邻引线分隔显示时,所述引线的起点与所述多层饼图的中心的连线之间的夹角;
根据所述第一显示角度和所述引线的第二初始位置,确定所述引线的第二目标位置。
在另一种可能的实现方式中,所述第二初始位置包括起点,所述根据所述第一显示角度和所述引线的第二初始位置,确定所述引线的第二目标位置,包括:
以所述多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,所述第一连线为所述引线的起点与所述坐标原点的连线,以及,确定第二连线与横轴的第二夹角,所述第二连线为上一引线的起点与所述坐标原点的连线,所述上一引线为与所述引线在顺时针方向上相邻的引线;
响应于所述第一夹角与所述第二夹角的差值小于所述第一显示角度,根据所述第二夹角和所述第一显示角度,在所述引线的起点的逆时针方向上更新所述引线的起点,得到所述引线的第二目标位置。
在另一种可能的实现方式中,所述根据所述第二夹角和所述第一显示角度,在所述引线的起点的逆时针方向上更新所述引线的起点,得到所述引线的第二目标位置之后,所述方法还包括:
获取所述引线对应的扇形区域的终止角度,响应于所述终止角度小于所述第一夹角,对所述引线的第二目标位置进行矫正。
在另一种可能的实现方式中,所述第二初始位置包括起点、转折点和终点,所述根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,包括:
以所述多层饼图的中心的位置为坐标原点,根据所述数据项包括的数据占比,确定所述数据项对应的扇形区域的起始角度和终止角度;
根据所述数据项对应的扇形区域的起始角度和终止角度,确定所述数据项对应的中间角度;
获取所述数据项对应的一层饼图的半径,根据所述数据项对应的一层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的起点的横坐标和纵坐标;
获取第二显示间距和所述多层饼图中最外层饼图的半径,所述第二显示间距为所述引线分隔显示时,引线的转折点与所述最外层饼图的距离,根据所述第二显示间距、所述最外层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的转折点的横坐标和纵坐标;
获取第三显示间距,根据所述最外层饼图的半径和所述第三显示间距确定所述数据项包括的标签信息的引线的终点的横坐标;
将所述数据项包括的标签信息的引线的转折点的纵坐标,作为所述数据项包括的标签信息的引线的终点的纵坐标;
将所述数据项包括的标签信息的引线的终点的横坐标作为所述数据项包括的标签信息的横坐标,将所述数据项包括的标签信息的引线的终点的纵坐标作为所述数据项包括的标签信息的纵坐标。
在另一种可能的实现方式中,所述根据所述数据项包括的数据占比,确定所述数据项对应的扇形区域的起始角度和终止角度,包括:
对于所述多层饼图中的任一层饼图,从所述层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为所述当前数据项对应的扇形区域的起始角度,根据所述当前数据项包括的数据占比和所述当前数据项对应的扇形区域的起始角度,确定所述当前数据项对应的扇形区域的终止角度;
将所述当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据所述下一数据项包括的数据占比和所述下一数据项对应的扇形区域的起始角度,确定所述下一数据项对应的扇形区域的终止角度;
将所述下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,得到每个所述数据项对应的扇形区域的起始角度和终止角度。
在另一种可能的实现方式中,所述根据所述第一目标位置和所述第二目标位置,显示所述数据项,包括:
确定所述多层饼图对应的可见区域,所述可见区域用于显示所述标签信息和所述标签信息的引线;
响应于所述可见区域包括所述第一目标位置和所述第二目标位置,在所述第一目标位置处显示所述标签信息,在所述第二目标位置处显示所述引线。
第二方面,提供了一种多层饼图的标签信息处理装置,所述装置包括:
多层饼图获取模块,用于获取待处理的多层饼图,所述多层饼图为通过数据可视化应用生成的;
数据项获取模块,用于获取所述多层饼图对应的至少两个数据项,所述数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息;
初始位置确定模块,用于根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,所述引线用于从所述数据项对应的扇形区域引出至所述数据项包括的标签信息;
目标位置确定模块,用于根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置;
所述目标位置确定模块,还用于根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置;
数据项显示模块,用于根据所述第一目标位置和所述第二目标位置,显示所述数据项。
在一种可能的实现方式中,所述目标位置确定模块,还用于获取所述标签信息的第一显示间距,所述第一显示间距是所述标签信息与相邻标签信息分隔显示时的距离;根据所述第一显示间距和所述标签信息的第一初始位置,确定所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述目标位置确定模块,还用于以所述多层饼图的中心的位置为坐标原点,根据所述标签信息的第一初始位置,确定所述标签信息所在的象限;根据所述标签信息所在的象限,确定所述标签信息所在的分组,所述标签信息所在的分组为第一组或者第二组,所述第一组中的标签信息用于显示在所述多层饼图的左侧,所述第二组中的标签信息用于显示在所述多层饼图的右侧;根据所述标签信息的第一初始位置确定所述标签信息的纵坐标;根据所述标签信息的第一显示间距、所述纵坐标和所述标签信息所在的分组,确定所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述目标位置确定模块,还用于获取所述标签信息所在分组的上一个标签信息的纵坐标;确定所述标签信息的纵坐标和所述上一个标签信息的纵坐标之间的差值;响应于所述差值小于所述第一显示间距,将所述上一个标签信息的纵坐标和所述第一显示间距的差值确定为所述标签信息的第一目标位置。
在另一种可能的实现方式中,所述目标位置确定模块,还用于获取所述引线的第一显示角度,所述第一显示角度是所述引线与相邻引线分隔显示时,所述引线的起点与所述多层饼图的中心的连线之间的夹角;根据所述第一显示角度和所述引线的第二初始位置,确定所述引线的第二目标位置。
在另一种可能的实现方式中,所述第二初始位置包括起点,
所述目标位置确定模块,还用于以所述多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,所述第一连线为所述引线的起点与所述坐标原点的连线,以及,确定第二连线与横轴的第二夹角,所述第二连线为上一引线的起点与所述坐标原点的连线,所述上一引线为与所述引线在顺时针方向上相邻的引线;响应于所述第一夹角与所述第二夹角的差值小于所述第一显示角度,根据所述第二夹角和所述第一显示角度,在所述引线的起点的逆时针方向上更新所述引线的起点,得到所述引线的第二目标位置。
在另一种可能的实现方式中,所述目标位置确定模块,还用于获取所述引线对应的扇形区域的终止角度,响应于所述终止角度小于所述第一夹角,对所述引线的第二目标位置进行矫正。
在另一种可能的实现方式中,所述第二初始位置包括起点、转折点和终点,
所述初始位置确定模块,还用于以所述多层饼图的中心的位置为坐标原点,根据所述数据项包括的数据占比,确定所述数据项对应的扇形区域的起始角度和终止角度;根据所述数据项对应的扇形区域的起始角度和终止角度,确定所述数据项对应的中间角度;获取所述数据项对应的一层饼图的半径,根据所述数据项对应的一层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的起点的横坐标和纵坐标;获取第二显示间距和所述多层饼图中最外层饼图的半径,所述第二显示间距为所述引线分隔显示时,引线的转折点与所述最外层饼图的距离,根据所述第二显示间距、所述最外层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的转折点的横坐标和纵坐标;获取第三显示间距,根据所述最外层饼图的半径和所述第三显示间距确定所述数据项包括的标签信息的引线的终点的横坐标;将所述数据项包括的标签信息的引线的转折点的纵坐标,作为所述数据项包括的标签信息的引线的终点的纵坐标;将所述数据项包括的标签信息的引线的终点的横坐标作为所述数据项包括的标签信息的横坐标,将所述数据项包括的标签信息的引线的终点的纵坐标作为所述数据项包括的标签信息的纵坐标。
在另一种可能的实现方式中,所述初始位置确定模块,还用于对于所述多层饼图中的任一层饼图,从所述层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为所述当前数据项对应的扇形区域的起始角度,根据所述当前数据项包括的数据占比和所述当前数据项对应的扇形区域的起始角度,确定所述当前数据项对应的扇形区域的终止角度;将所述当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据所述下一数据项包括的数据占比和所述下一数据项对应的扇形区域的起始角度,确定所述下一数据项对应的扇形区域的终止角度;将所述下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,得到每个所述数据项对应的扇形区域的起始角度和终止角度。
在另一种可能的实现方式中,所述数据项显示模块,还用于确定所述多层饼图对应的可见区域,所述可见区域用于显示所述标签信息和所述标签信息的引线;响应于所述可见区域包括所述第一目标位置和所述第二目标位置,在所述第一目标位置处显示所述标签信息,在所述第二目标位置处显示所述引线。
第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述任一种可能实现方式中的多层饼图的标签信息处理方法中所执行的操作。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述任一种可能实现方式中的多层饼图的标签信息处理方法中终端执行的操作。
本公开实施例提供的技术方案带来的有益效果是:
在本公开实施例中,获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的,获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息,根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息,通过根据标签的第一初始位置,对标签进行标签碰撞检测,确定标签的第一目标位置,可以避免多层饼图的标签出现隐藏或者堆叠,从而可以提高饼图的标签展示量,通过根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,可以避免标签的引线出现堆叠,通过根据第一目标位置和第二目标位置,显示数据项,并且,引线用于从数据项对应的扇形区域引出至数据项对应的标签信息,可以通过引线清楚地展示出标签信息和多层饼图的数据项的对应关系,很好地支持了多层饼图的标签信息的展示。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种实施环境的示意图;
图2是本公开实施例提供的一种多层饼图的标签信息处理方法的流程图;
图3是本公开实施例提供的一种多层饼图的标签信息处理方法的流程图;
图4是本公开实施例提供的一种确定扇形区域的角度的流程图;
图5是本公开实施例提供的一种调整标签信息的坐标的流程图;
图6是本公开实施例提供的一种调整引线的角度的流程图;
图7是本公开实施例提供的一种确定标签信息是否在可见区域的流程图;
图8是本公开实施例提供的一种标签信息和引线的位置关系示意图;
图9是本公开实施例提供的一种标签信息和引线的位置关系示意图;
图10是本公开实施例提供的一种标签信息和引线的位置关系示意图;
图11是本公开实施例提供的一种多层饼图的标签信息处理装置的框图;
图12是本公开实施例提供的一种终端的结构示意图;
图13是本公开实施例提供的一种服务器的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
首先,对说明书中涉及的专业术语做出解释:
饼图:或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。
Canvas(画布):canvas元素是HTML5(Hyper Text Markup Language,超文本标记语言)的一部分,允许scripting languages(脚本语言)动态渲染位图像。
弧度:弧度又称弪度,是平面角的单位,一个完整的圆的弧度是2π。
图1是本公开实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101和服务器102。终端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端101以及服务器102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。并且,终端101上可以安装由服务器102提供服务的目标应用,终端101对应的用户可以通过该目标应用实现例如数据传输、消息交互等功能。
目标应用可以为终端101上安装的任一应用;并且,目标应用可以为终端101操作系统中的目标应用,还可以为第三方提供的目标应用。例如,目标应用可以为购物应用、金融应用、数据可视化应用、数据计算应用或者数据分析应用等。服务器102可以为该目标应用对应的后台服务器。相应的,服务器102可以为购物服务器、金融服务器、数据可视化服务器、数据计算服务器或者数据分析服务器等。
终端101可以根据多层饼图对应的数据项在界面上显示多层饼图、以及显示多层饼图的标签信息,并且,终端101还可以显示标签信息的引线,通过引线将数据项对应的扇形区域引出至该数据项包括的标签信息,从而清楚地展示出标签信息和多层饼图的数据项的对应关系。
进一步的,终端101可以获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的,然后,终端101可以获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息。终端101根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息。然后,终端101根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置,根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,然后终端101根据第一目标位置和第二目标位置,显示数据项。
进一步的,终端101根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置的实现方式可以为:终端101获取标签信息的第一显示间距,第一显示间距是该标签信息与相邻标签信息分隔显示时的距离,终端101根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置。
终端101根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置的实现方式可以为:终端101获取引线的第一显示角度,第一显示角度是该引线与相邻引线分隔显示时,引线的起点与多层饼图的中心的连线之间的夹角,根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置。
其中,终端101也可以在获取多层饼图对应的至少两个数据项后,将数据项发送给服务器102,由服务器102确定标签信息的第一目标位置和引线的第二目标位置,然后终端101接收服务器102返回的第一目标位置和引线的第二目标位置,根据第一目标位置和第二目标位置,显示数据项。
需要说明的一点是,本公开中的多层饼图的标签信息处理方法可以应用在云技术中的大数据(Big data)领域。大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。本公开提供的多层饼图的标签信息处理方法可以应用在上述多种技术中,例如,利用在数据挖掘技术中时,通过本公开的方法,即以多层饼图的方式对数据进行统计,通过本公开中的标签信息的显示方法将数据的分布、数据类型、数据的比例关系、数据的内在含义和联系展示出来,从而挖掘出需要的知识和信息。又如,应用在互联网中,当服务器或者终端获取到饼图信息时,可以通过本公开中的方法对饼图信息进行处理,以将饼图信息清楚完整的展示出来。上述应用领域和应用方法只是示例性说明,本公开对此不做限制。
图2是本公开实施例提供的一种多层饼图的标签信息处理方法的流程图。
参见图2,该实施例包括:
201、获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的。
202、获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息。
203、根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息。
204、根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置。
205、根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置。
206、根据第一目标位置和第二目标位置,显示数据项。
在一种可能的实现方式中,根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置,包括:
获取标签信息的第一显示间距,第一显示间距是标签信息与相邻标签信息分隔显示时的距离;
根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置。
在另一种可能的实现方式中,根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置,包括:
以多层饼图的中心的位置为坐标原点,根据标签信息的第一初始位置,确定标签信息所在的象限;
根据标签信息所在的象限,确定标签信息所在的分组,标签信息所在的分组为第一组或者第二组,第一组中的标签信息用于显示在多层饼图的左侧,第二组中的标签信息用于显示在多层饼图的右侧;
根据标签信息的第一初始位置确定标签信息的纵坐标;
根据标签信息的第一显示间距、纵坐标和标签信息所在的分组,确定标签信息的第一目标位置。
在另一种可能的实现方式中,根据标签信息的第一显示间距、纵坐标和标签信息所在的分组,确定标签信息的第一目标位置,包括:
获取标签信息所在分组的上一个标签信息的纵坐标;
确定标签信息的纵坐标和上一个标签信息的纵坐标之间的差值;
响应于差值小于第一显示间距,将上一个标签信息的纵坐标和第一显示间距的差值确定为标签信息的第一目标位置。
在另一种可能的实现方式中,根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,包括:
获取引线的第一显示角度,第一显示角度是引线与相邻引线分隔显示时,引线的起点与多层饼图的中心的连线之间的夹角;
根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置。
在另一种可能的实现方式中,第二初始位置包括起点,根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置,包括:
以多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,第一连线为引线的起点与坐标原点的连线,以及,确定第二连线与横轴的第二夹角,第二连线为上一引线的起点与坐标原点的连线,上一引线为与引线在顺时针方向上相邻的引线;
响应于第一夹角与第二夹角的差值小于第一显示角度,根据第二夹角和第一显示角度,在引线的起点的逆时针方向上更新引线的起点,得到引线的第二目标位置。
在另一种可能的实现方式中,根据第二夹角和第一显示角度,在引线的起点的逆时针方向上更新引线的起点,得到引线的第二目标位置之后,方法还包括:
获取引线对应的扇形区域的终止角度,响应于终止角度小于第一夹角,对引线的第二目标位置进行矫正。
在另一种可能的实现方式中,第二初始位置包括起点、转折点和终点,根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,包括:
以多层饼图的中心的位置为坐标原点,根据数据项包括的数据占比,确定数据项对应的扇形区域的起始角度和终止角度;
根据数据项对应的扇形区域的起始角度和终止角度,确定数据项对应的中间角度;
获取数据项对应的一层饼图的半径,根据数据项对应的一层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的起点的横坐标和纵坐标;
获取第二显示间距和多层饼图中最外层饼图的半径,第二显示间距为引线分隔显示时,引线的转折点与最外层饼图的距离,根据第二显示间距、最外层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的转折点的横坐标和纵坐标;
获取第三显示间距,根据最外层饼图的半径和第三显示间距确定数据项包括的标签信息的引线的终点的横坐标;
将数据项包括的标签信息的引线的转折点的纵坐标,作为数据项包括的标签信息的引线的终点的纵坐标;
将数据项包括的标签信息的引线的终点的横坐标作为数据项包括的标签信息的横坐标,将数据项包括的标签信息的引线的终点的纵坐标作为数据项包括的标签信息的纵坐标。
在另一种可能的实现方式中,根据数据项包括的数据占比,确定数据项对应的扇形区域的起始角度和终止角度,包括:
对于多层饼图中的任一层饼图,从层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为当前数据项对应的扇形区域的起始角度,根据当前数据项包括的数据占比和当前数据项对应的扇形区域的起始角度,确定当前数据项对应的扇形区域的终止角度;
将当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据下一数据项包括的数据占比和下一数据项对应的扇形区域的起始角度,确定下一数据项对应的扇形区域的终止角度;
将下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,得到每个数据项对应的扇形区域的起始角度和终止角度。
在另一种可能的实现方式中,根据第一目标位置和第二目标位置,显示数据项,包括:
确定多层饼图对应的可见区域,可见区域用于显示标签信息和标签信息的引线;
响应于可见区域包括第一目标位置和第二目标位置,在第一目标位置处显示标签信息,在第二目标位置处显示引线。
在本公开实施例中,获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的,获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息,根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息,通过根据标签的第一初始位置,对标签进行标签碰撞检测,确定标签的第一目标位置,可以避免多层饼图的标签出现隐藏或者堆叠,从而可以提高饼图的标签展示量,通过根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,可以避免标签的引线出现堆叠,通过根据第一目标位置和第二目标位置,显示数据项,并且,引线用于从数据项对应的扇形区域引出至数据项对应的标签信息,可以通过引线清楚地展示出标签信息和多层饼图的数据项的对应关系,很好地支持了多层饼图的标签信息的展示。
图3是本公开实施例提供的一种多层饼图的标签信息处理方法的流程图。
参见图3,该实施例包括:
301、终端获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的。
其中,多层饼图指的是具有多个层级,且层级之间具有包含关系的饼状图表。多层饼图用于表明数据的统计关系。多层饼图的层数可以为任意数目,例如2层、3层或者4层,本公开对此不做限制。一个多层饼图可以对应多个标签信息,标签信息用于对多层饼图中的数据做出说明。相应的,本公开中所指的待处理的多层饼图是指还未显示标签信息的多层饼图。
数据可视化应用也可称为数据可视化工具,用于创建各种图表,例如,多层饼图,柱状图、折线图等,并且,数据可视化应用可以根据数据自动生成图表。另外,也可以通过数据可视化应用直接获取已生成的图表的信息。在本公开实施例中,以数据可视化应用为BizCharts(一种数据可视化应用)为例,进行说明,当然,数据可视化应用也可以为其他,本公开对此不做限制。
终端获取待处理的多层饼图的实现方式有以下两种:
第一种,终端直接获取数据可视化应用已生成的多层饼图。
在数据可视化应用生成的图表存储在终端的情况下,该步骤的实现方式可以为:终端直接从本地获取数据可视化应用创建的待处理的多层饼图。在数据可视化应用生成的图表存储在服务器的情况下,该步骤的实现方式可以为:终端向服务器发送多层饼图获取请求,获取请求携带待处理的多层饼图的标识,服务器根据该标识从图表库中获取待处理的多层饼图,图表库用于存储数据可视化应用生成的图表,然后,服务器向终端发送该多层饼图,终端接收该多层饼图。
第二种,终端获取用于绘制多层饼图的初始数据,通过数据可视化应用生成多层饼图。该步骤包括以下步骤(1)-(2):
(1)终端获取用于绘制多层饼图的初始数据。
终端可以在界面上显示初始数据的输入界面,获取输入界面中被用户输入的初始数据。或者,在终端中存储有用于绘制多层饼图的初始数据的情况下,终端可以直接调取该初始数据。或者,在服务器存储用于绘制多层饼图的初始数据的情况下,终端也可以响应于接收到对多层饼图的初始数据的获取操作,向服务器发送多层饼图的初始数据获取请求,然后接收服务器发送的初始数据。
(2)终端根据初始数据,通过数据可视化应用生成待处理的多层饼图。
该步骤的实现方式为:终端调用数据可视化应用对初始数据进行处理,得到待处理的多层饼图。
302、终端获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息。
多层饼图可以对应多个数据项,每个数据项用于绘制多层饼图中的一个扇形区域,且数据项可以包括标签信息,标签信息用于对扇形区域对应的数据项做出说明。
终端获取多层饼图对应的至少两个数据项的实现方式可以为:终端通过终端上的数据可视化应用生成多层饼图对应的至少两个数据项。
在本公开实施例中,以BizCharts为例进行说明,该步骤的实现方式为:对于已获取的待处理的多层饼图,终端通过BizCharts,注册onGetG2Instance事件,获取该多层饼图对应的至少两个数据项,每个数据项包括该数据项对应的百分比,每个数据项还可以包括该数据项对应的名称(name)和值(key),终端根据数据项对应的百分比、名称和值生成该数据项的标签信息。
其中,终端通过注册onGetG2Instance(一种实例化的方法)事件,获取该多层饼图对应的至少两个数据项的实现方式为:终端通过注册onGetG2Instance事件,获取多层饼图的Views(视图)数组,其中,Views数组包括多个View(视图)数组,每个View数组对应一层饼图。终端从外层向内层遍历Views数组,得到每个View数组对应的一层饼图的dataset(一个数组结构),每个dataset包括数据项。
303、终端根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息。
其中,第二初始位置包括起点、转折点和终点,终端根据数据项包括的数据占比,确定数据项包括的标签信息的引线的第二初始位置,包括下述步骤(1)-(6):
(1)终端以多层饼图的中心的位置为坐标原点,根据数据项包括的数据占比,确定数据项对应的扇形区域的起始角度和终止角度。
其中,多层饼图的中心的位置可以通过注册onGetG2Instance事件获取。终端根据数据项包括的数据占比,确定数据项对应的扇形区域的起始角度和终止角度,包括下述步骤(A)-(C):
(A)对于多层饼图中的任一层饼图,终端从该层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为当前数据项对应的扇形区域的起始角度,根据当前数据项包括的数据占比和当前数据项对应的扇形区域的起始角度,确定当前数据项对应的扇形区域的终止角度。
上述方法可以通过下述公式(1)实现:
maxAngle=angle+2π*percent (1)
其中,maxAngle为当前数据项的终止角度,angle为预设角度,percent为当前数据项包括的数据占比。预设角度可以根据需要设定,例如,该预设角度可以为-π/2、0或者π/2,当然,也可以设置为其他,本公开对此不做限制。
(B)终端将当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据下一数据项包括的数据占比和下一数据项对应的扇形区域的起始角度,确定下一数据项对应的扇形区域的终止角度。
其中,终端根据下一数据项包括的数据占比和下一数据项对应的扇形区域的起始角度,确定下一数据项对应的扇形区域的终止角度的实现方式与终端根据当前数据项包括的数据占比和当前数据项对应的扇形区域的起始角度,确定当前数据项对应的扇形区域的终止角度的实现方式同理,此处不再赘述。
(C)终端将下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,直到得到该层饼图的每个数据项对应的扇形区域的起始角度和终止角度。
参考图4,为获取数据项对应的扇形区域的起始角度和终止角度的流程图。其中,以预设角度angle=-π/2为例进行说明,i为整数,用于控制循环的次数。对于每一层饼图对应的n个数据项,在i=0,即第一次循环时,选取任一数据项作为当前数据项,计算当前数据项的起始角度和终止角度,其中,该当前数据项的起始角度为预设角度。然后,将当前数据项的终止角度初始化为下一数据项的起始角度。然后,i增加1得到i=1,在i=1,即第二次循环时,计算下一数据项的终止角度,将下一数据项的终止角度初始化为再下一项数据项的起始角度,以此类推,当i=n-1,即最后一次循环时,即可得到该层饼图对应的n个数据项的起始角度和终止角度,在i=n时,不满足循环条件,循环结束。
(2)终端根据数据项对应的扇形区域的起始角度和终止角度,确定数据项对应的中间角度。
该步骤的实现方式为:终端确定数据项的起始角度和终止角度的平均值,将平均值作为该数据项对应的中间角度。
(3)终端获取数据项对应的一层饼图的半径,根据数据项对应的一层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的起点的横坐标和纵坐标。
上述方法可以通过下述公式(2)实现:
其中,edgepointX为起点的横坐标,edgepointY为起点的纵坐标,CX为多层饼图的中心的位置的横坐标,Cy为多层饼图的中心的位置的纵坐标,r为数据项对应的一层饼图的半径,middleAngle为数据项对应的中间角度,弧度制下,π=180度。
(4)终端获取第二显示间距和多层饼图中最外层饼图的半径,第二显示间距为引线分隔显示时,引线的转折点与最外层饼图的距离,根据第二显示间距、最外层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的转折点的横坐标和纵坐标。
上述方法可以通过下述公式(3)实现:
其中,turningpointX为转折点的横坐标,turningpointY为转折点的纵坐标,CX为多层饼图的中心的位置的横坐标,Cy为多层饼图的中心的位置的纵坐标,R为最外层饼图的半径,offset2为第二显示间距,middleAngle为数据项对应的中间角度,弧度制下,π=180度。需要说明的一点是,第二显示间距可以根据需要设置为任意数值,例如,20,本公开对此不做限制。
(5)终端获取第三显示间距,根据最外层饼图的半径和第三显示间距确定数据项包括的标签信息的引线的终点的横坐标。
上述方法可以通过下述公式(4)实现:
其中,endpointX为终点的横坐标,CX为多层饼图的中心的位置的横坐标,Cy为多层饼图的中心的位置的纵坐标,R为最外层饼图的半径,offset3为第三显示间距,弧度制下,π=180度,需要说明的一点是,第三显示间距可以根据需要设置为任意数值,例如,20、25、30等,本公开对此不做限制。
(6)终端将数据项包括的标签信息的引线的转折点的纵坐标,作为数据项包括的标签信息的引线的终点的纵坐标。
上述方法可以通过下述公式(5)实现:
endpointY=turningpointY (5)
其中,endpointY为终点的纵坐标,turningpointY为转折点的纵坐标。
终端根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置的实现方式为:终端将数据项包括的标签信息的引线的终点的横坐标作为数据项包括的标签信息的横坐标,将数据项包括的标签信息的引线的终点的纵坐标作为数据项包括的标签信息的纵坐标。
在本公开实施例中,将数据项包括的标签信息的引线的终点的坐标,作为数据项包括的标签信息的坐标,则引线可直接引出至标签信息,可以清楚的表明数据项和标签信息的对应关系,并且,方法简单,易于实现。
304、终端根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置。
该步骤的实现方式为:终端获取标签信息的第一显示间距,第一显示间距是标签信息与相邻标签信息分隔显示时的距离,根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置。
其中,第一初始位置是相对于多层饼图的中心的位置,第一显示间距可以根据需要设置为任意数值,例如,第一显示间距可以设置为5、10、15、20等,本公开对此不做限制。
在一种可能的实现方式中,第一显示间距和标签信息中文本的字号有对应关系,例如,不同的字号可以对应不同的第一显示间距,相应的,终端获取标签信息的第一显示间距的实现方式为:终端获取标签信息中文本的字号,从第一显示间距和标签信息中文本的字号的对应关系中,获取与该字号匹配的第一显示间距。
在本公开实施例中,通过设置第一显示间距和标签信息中文本的字号的对应关系,根据标签信息中文本的字号,从第一显示间距和标签信息中文本的字号的对应关系中,获取与该字号匹配的第一显示间距,实现了根据字体大小动态调整第一显示间距,可以提升多层饼图的标签信息的展示效果。
终端根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置的实现步骤包括下述步骤(1)-(4):
(1)终端以多层饼图的中心的位置为坐标原点,根据标签信息的第一初始位置,确定标签信息所在的象限。
在一种可能的实现方式中,该步骤的实现方式为:终端获取标签信息的第一初始位置中起点与坐标原点的连线与横轴的夹角,也即标签信息对应的扇形区域的中间角度,根据该中间角度,确定标签信息的象限。
上述方法可通过下述公式(6)实现:
其中,middleAngle为标签信息对应的扇形区域的中间角度,k为任意整数,弧度制下,π=180度。
(2)终端根据标签信息所在的象限,确定标签信息所在的分组,标签信息所在的分组为第一组或者第二组,第一组中的标签信息用于显示在多层饼图的左侧,第二组中的标签信息用于显示在多层饼图的右侧。
该步骤的实现方式为:终端将第二象限和第三象限的标签信息划分到第一组中,将第一象限和第四象限的标签信息划分到第二组中。
需要说明的一点是,由于标签信息对应的中间角度可能会等于坐标轴的角度,此种情况下,标签信息不属于任何象限,但在该步骤中,也要将这些标签信息划分到第一组和第二组中,划分的方法可通过下述公式(7)实现:
其中,middleAngle为标签信息对应的扇形区域的中间角度,k为任意整数,弧度制下,π=180度。
继续参考图4,终端要根据当前数据项的中间角度确定当前数据项包括的标签信息是否属于第二象限或者第三象限,如果属于,则将标签信息划分到第一组中,如果不属于,则将标签信息划分到第二组中。然后,根据下一数据项的中间角度确定下一数据项包括的标签信息是否属于第二象限或者第三象限,以此类推,直到将所有的数据项都划分到对应的分组中为止。
(3)终端根据标签信息的第一初始位置确定标签信息的纵坐标。
(4)终端根据标签信息的第一显示间距、纵坐标和标签信息所在的分组,确定标签信息的第一目标位置。
该步骤的实现方式为:终端获取标签信息所在分组的上一个标签信息的纵坐标,确定标签信息的纵坐标和上一个标签信息的纵坐标之间的差值,终端响应于差值小于第一显示间距,将上一个标签信息的纵坐标和第一显示间距的差值确定为标签信息的第一目标位置。
其中,终端在获取标签信息所在分组的上一个标签信息的纵坐标的坐标值之前,先要根据纵坐标,将该分组中的标签信息按照纵坐标从大到小的顺序对第一组和第二组中的标签信息分别进行排序,则上一个标签信息为排在该标签信息之前的一个标签信息。
需要说明的一点是,在本公开中,是以从大到小的顺序来示例性说明第一目标位置的确定方法,当然,也可以按照纵坐标从小到大的顺序对第一组和第二组中的标签信息分别进行排序,本公开对此不做限制。当按照纵坐标从小到大的顺序对第一组和第二组中的标签信息分别进行排序时,需要将上述步骤,终端响应于差值小于第一显示间距,将上一个标签信息的纵坐标和第一显示间距的差值确定为标签信息的第一目标位置替换为:终端响应于差值小于第一显示间距,将上一个标签信息的纵坐标和第一显示间距的和确定为标签信息的第一目标位置。
在本公开实施例中,终端通过在标签信息的纵坐标与该分组中的上一个标签信息的纵坐标的差值小于第一显示间距时,将上一个标签信息的纵坐标和第一显示间距的差值确定为标签信息的第一目标位置,可以避免多层饼图的标签信息较多时,出现标签信息重叠的问题,从而可以提高标签信息的展示效果,更直观的展示饼图的数据分布情况。
需要说明的另一点是,除了每个分组中第一个标签信息外,分组中其余的每个标签信息都可以按照上述方法确定标签信息的第一目标位置,对于每个分组中的第一个标签信息,可以将该标签信息的第一初始位置作为该标签信息的第一目标位置。另外,每个标签信息的第一目标位置中的横坐标和第一初始位置中的横坐标相同。
参考图5,为终端确定标签信息的第一目标位置的流程图。其中,以第一显示间距为20为例进行说明,i为整数,用于控制循环的次数。对于每一组对应的m个标签信息,在i=0,即第一次循环时,选取排序第一的标签信息作为当前标签信息,计算下一标签信息的纵坐标与当前标签信息的纵坐标的差值,如果差值小于第一显示间距,就更新下一标签信息的纵坐标,然后,i增加1得到i=1,在i=1,即第二次循环时,再将下一标签信息作为当前标签信息,以此类推,当i=m-2,即最后一次循环时,即可得到该分组对应的m个数据项的起始角度和终止角度,在i=m-1时,不满足循环条件,循环结束。
305、终端根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置。
该步骤的实现方式为:终端获取引线的第一显示角度,第一显示角度是引线与相邻引线分隔显示时,引线的起点与多层饼图的中心的连线之间的夹角,根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置。
其中,第二初始位置包括起点。第一显示角度可以根据需要设置为任意数值,例如,第一显示角度可以设置为1弧度、2弧度、3弧度、4弧度等,本公开对此不做限制。
终端根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置的实现步骤包括下述步骤(1)-(3):
(1)终端以多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,第一连线为该引线的起点与坐标原点的连线,以及,确定第二连线与横轴的第二夹角,第二连线为上一引线的起点与坐标原点的连线,上一引线为与该引线在顺时针方向上相邻的引线。
其中,可以理解的是,该引线对应的第一连线与横轴的第一夹角即为该引线对应的数据项的中间角度,上一引线对应的第二连线与横轴的第二夹角即为上一引线对应的数据项的中间角度,因此,该步骤的实现方式为:终端获取该引线对应的数据项的中间角度和上一引线对应的数据项的中间角度。
需要说明的一点是,在本公开实施例中,是以顺时针方向上的上一引线为例说明该引线的第二目标位置的确定方法,当然,上一引线也可以是逆时针方向上相邻的引线,本公开对此不做限制。
(2)终端响应于第一夹角与第二夹角的差值小于第一显示角度,根据第二夹角和第一显示角度,在该引线的起点的逆时针方向上更新该引线的起点,得到该引线的第二目标位置。
需要说明的一点是,若上一引线为该引线在顺时针方向上相邻的引线,则对于更新后的该引线的起点,该起点与坐标原点的连线与横轴的第一夹角等于等于第二夹角与第一显示角度的和。若上一引线为该引线在逆时针方向上相邻的引线,则对于更新后的该引线的起点,该起点与坐标原点的连线与横轴的第一夹角等于第二夹角与第一显示角度的差。
该步骤的实现方式为:终端响应于该引线对应的数据项的中间角度与上一引线对应的数据项的中间角度的差值小于第一显示角度,将该引线对应的数据项的中间角度更新为上一引线的中间角度与第一显示角度的和,然后根据更新后的该引线的中间角度重新确定该引线的起点,其中,上一引线为该引线在顺时针方向上相邻的引线,或者,终端响应于上一引线对应的数据项的中间角度与该引线对应的数据项的中间角度的差值小于第一显示角度,将该引线对应的数据项的中间角度更新为上一引线的中间角度与第一显示角度的差值,然后根据更新后的该引线的中间角度重新确定该引线的起点,其中,上一引线为该引线在逆时针方向上相邻的引线。
其中,终端根据更新后的该引线的中间角度重新确定该引线的起点的实现方式和步骤302中,终端确定引线的起点的实现方式同理,此处不再赘述。
需要说明的一点是,终端重新确定引线的起点后,还需要根据更新后的引线对应的中间角度重新确定引线的转折点,终端根据更新后的引线对应的中间角度重新确定引线的转折点的实现方式和步骤302中,终端确定引线的转折点的实现方式同理,此处不再赘述。
需要说明的另一点是,终端将标签信息的第一目标位置作为标签信息对应的引线的更新后的终点,终端根据更新后的起点、更新后的转折点和更新后的终点,确定引线的第二目标位置。
在本公开实施例中,终端响应于第一夹角与第二夹角的差值小于第一显示角度,根据第二夹角和第一显示角度,在该引线的起点的逆时针方向上更新该引线的起点,得到该引线的第二目标位置,可以防止引线过于集中,导致无法辨别引线对应的扇形区域或者对应的标签信息的问题,从而可以提高多层饼图的标签信息的展示效果。
(3)终端获取该引线对应的扇形区域的终止角度,响应于终止角度小于第一夹角,对该引线的第二目标位置进行矫正。
终端对该引线的第二目标位置进行矫正的实现方式为:终端将该引线对应的扇形区域的终止角度作为矫正后的该引线对应的中间角度,根据该矫正后的中间角度重新确定该引线的起点和转折点,然后将该引线对应的标签信息的第一目标位置作为引线的终点,根据该起点、该转折点和该终点,确定引线的第二目标位置。
在本公开实施例中,通过对引线的第二目标位置进行矫正,可以保证引线的起点落在该引线对应的扇形区域的弧上,从而确保引线标注的准确性。
参考图6,为终端确定引线的第二目标位置的流程图。其中,以第一显示角度为1弧度为例进行说明,i为整数,用于控制循环的次数。对于多层饼图对应的L个引线,在i=0,即第一次循环时,选取当前引线,计算下一引线的中间角度与当前引线的中间角度的差值,如果差值小于第一显示角度,就更新下一引线的中间角度,然后,i增加1得到i=1,在i=1,即第二次循环时,将下一引线作为当前引线,以此类推,当i=L-2,即最后一次循环时,即可得到多层饼图对应的L个引线的中间角度,在i=L-1时,不满足循环条件,循环结束。
306、终端确定多层饼图对应的可见区域,可见区域用于显示标签信息和标签信息的引线。
终端确定多层饼图对应的可见区域的实现方式为:终端通过注册onGetG2Instance事件,获取Canvas(画布)对应的区域,该区域即为可见区域。其中,Canvas对应的区域可通过Canvas的高度和宽度来表示。
终端确定可见区域后,还要确定该可见区域是否包括标签信息的第一目标位置和标签的引线的第二目标位置,终端响应于可见区域包括第一目标位置和第二目标位置,执行步骤306。其中,终端确定可见区域是否包括标签信息的第一目标位置的实现方式为:若标签信息的第一目标位置中的横坐标和纵坐标分别满足下述公式(8),则确定可见区域包括第一目标位置。
其中,endpointX为标签信息的第一目标位置中的横坐标,endpointY为标签信息的第一目标位置中的纵坐标,W为Canvas的宽度,H为Canvas的高度。
需要说明的一点是,若标签信息的第一目标位置在可见区域,则该标签信息的引线的第二目标位置也在可见区域。
需要说明的另一点是,对于第一目标位置不在可见区域的标签信息,可以通过调整第一目标位置或者调整可见区域来使标签信息处于可见区域,本公开对此不做限制。
在本公开实施例中,终端通过先确定可见区域是否包括标签信息的第一目标位置和标签信息的引线的第二目标位置,响应于可见区域包括第一目标位置和第二目标位置,在第一目标位置处显示对应的标签信息,在第二目标位置处显示对应的引线,如果可见区域不包括第一目标位置,则调整第一目标位置或者调整可见区域来使标签信息和引线处于可见区域,可以确保标签信息可以完整的展示,从而提高多层饼图的标签信息的展示效果。
参考图7,为确定标签信息是否在可见区域的流程图。其中,i为整数,用于控制循环的次数。对于多层饼图对应的L个标签信息,在i=0,即第一次循环时,确定当前的标签信息对应的第一目标位置是否在可见区域,如果在,就绘制该标签信息以及对应的引线,然后,i增加1得到i=1,在i=1,即第二次循环时,将下一标签信息作为当前的标签信息,以此类推,当i=L-1,即最后一次循环后,即判断完该多层饼图的L个标签信息是否在可见区域,在i=L时,不满足循环条件,循环结束。
307、终端根据第一目标位置和第二目标位置,显示数据项。
该步骤的实现方式可以为:终端在第一目标位置处显示标签信息,在第二目标位置处显示引线。
进一步的,终端根据第二目标位置中的起点、转折点和终点绘制一条折线作为引线,在折线的终点处,也即第一目标位置处显示对应的标签信息。
在一种可能的实现方式中,若标签信息的第一目标位置位于多层饼图的左侧,则标签信息以右对齐的方式显示,若标签信息的第一目标位置位于多层饼图的右侧,则标签信息以左对齐的方式显示。如此,饼图标签信息的展示更加清楚、有序,提高了标签信息的展示效果。
参考图8,为根据第一初始位置显示多层饼图的标签信息,以及根据第二初始位置显示引线时,标签信息和引线的位置关系示意图。可以看到,由于多层饼图的标签信息较多,部分标签信息出现了重叠,标签信息的展示效果差。参考图9,为根据第一目标位置显示多层饼图的标签信息,以及根据第二目标位置显示引线时,标签信息和引线的位置关系示意图。可以看到,在多层饼图的标签信息较多的情况下,没有出现标签信息重叠的情况,标签信息的展示效果好。
综上,本公开中的标签信息展示方法可以理解为终端根据多层饼图对应的数据项的数据占比确定数据项对应的扇形区域的中间角度,然后根据中间角度和数据项包括的标签信息,确定标签信息的四元组信息,其中,标签信息的四元组信息包括标签信息对应的引线的起点、引线的转折点、引线的终点(标签信息的位置)、以及标签信息本身。然后对标签信息的四元组信息进行标签信息的碰撞检测和角度重叠检测,即根据标签信息的位置确定标签信息是否重叠,以及根据中间角度确定引线是否重叠,在判定标签信息重叠的情况下,调整标签信息四元组信息中引线的终点,在判定引线重叠的情况下,调整标签信息四元组信息中引线的起点和转折点,然后根据调整后的标签信息的四元组信息绘制多层饼图的标签信息和引线。
需要说明的一点是,本公开实施例中的引线是以折线为例进行说明的,即引线包括起点、转折点和终点,在一种可能的实现方式中,引线也可以为一条线段,例如,可以将上述引线的第二初始位置中的起点和转折点,分别作为线段的起点和终点,根据该起点和终点确定引线的第三初始位置,以及将该终点作为引线对应的标签信息的第四初始位置。然后,终端可以在相邻引线的中间角度小于第一显示角度的情况下,对第三初始位置中引线的起点和终点进行调整,得到引线的第三目标位置和标签信息的第四目标位置,在第三目标位置显示对应的引线,以及在第四目标位置显示对应的标签信息。并且,终端可以在第四目标位置上,横向显示该标签信息或者沿着该引线的延长线方向显示该标签信息,从而避免标签信息重叠。此种显示标签信息和引线的方法可以避免标签信息重叠和引线重叠,并且,方法简单,易于实现。参考图10,为根据第四目标位置显示多层饼图的标签信息,以及根据第三目标位置显示引线时,标签信息和引线的位置关系示意图。
在本公开实施例中,获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的,获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息,根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息,通过根据标签的第一初始位置,对标签进行标签碰撞检测,确定标签的第一目标位置,可以避免多层饼图的标签出现隐藏或者堆叠,从而可以提高饼图的标签展示量,通过根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,可以避免标签的引线出现堆叠,通过根据第一目标位置和第二目标位置,显示数据项,并且,引线用于从数据项对应的扇形区域引出至数据项对应的标签信息,可以通过引线清楚地展示出标签信息和多层饼图的数据项的对应关系,很好地支持了多层饼图的标签信息的展示。
图11是本公开实施例提供的一种多层饼图的标签信息处理装置的框图。参见图11,该实施例包括:
多层饼图获取模块1101,用于获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的。
数据项获取模块1102,用于获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息。
初始位置确定模块1103,用于根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息。
目标位置确定模块1104,用于根据标签信息的第一初始位置,对标签信息进行标签碰撞检测,确定标签信息的第一目标位置。
目标位置确定模块1104,还用于根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置。
数据项显示模块1105,用于根据第一目标位置和第二目标位置,显示数据项。
在一种可能的实现方式中,目标位置确定模块1104,还用于获取标签信息的第一显示间距,第一显示间距是标签信息与相邻标签信息分隔显示时的距离;根据第一显示间距和标签信息的第一初始位置,确定标签信息的第一目标位置。
在另一种可能的实现方式中,目标位置确定模块1104,还用于以多层饼图的中心的位置为坐标原点,根据标签信息的第一初始位置,确定标签信息所在的象限;根据标签信息所在的象限,确定标签信息所在的分组,标签信息所在的分组为第一组或者第二组,第一组中的标签信息用于显示在多层饼图的左侧,第二组中的标签信息用于显示在多层饼图的右侧;根据标签信息的第一初始位置确定标签信息的纵坐标;根据标签信息的第一显示间距、纵坐标和标签信息所在的分组,确定标签信息的第一目标位置。
在另一种可能的实现方式中,目标位置确定模块1104,还用于获取标签信息所在分组的上一个标签信息的纵坐标;确定标签信息的纵坐标和上一个标签信息的纵坐标之间的差值;响应于差值小于第一显示间距,将上一个标签信息的纵坐标和第一显示间距的差值确定为标签信息的第一目标位置。
在另一种可能的实现方式中,目标位置确定模块1104,还用于获取引线的第一显示角度,第一显示角度是引线与相邻引线分隔显示时,引线的起点与多层饼图的中心的连线之间的夹角;根据第一显示角度和引线的第二初始位置,确定引线的第二目标位置。
在另一种可能的实现方式中,第二初始位置包括起点,
目标位置确定模块1104,还用于以多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,第一连线为引线的起点与坐标原点的连线,以及,确定第二连线与横轴的第二夹角,第二连线为上一引线的起点与坐标原点的连线,上一引线为与引线在顺时针方向上相邻的引线;响应于第一夹角与第二夹角的差值小于第一显示角度,根据第二夹角和第一显示角度,在引线的起点的逆时针方向上更新引线的起点,得到引线的第二目标位置。
在另一种可能的实现方式中,目标位置确定模块1104,还用于获取引线对应的扇形区域的终止角度,响应于终止角度小于第一夹角,对引线的第二目标位置进行矫正。
在另一种可能的实现方式中,第二初始位置包括起点、转折点和终点,
初始位置确定模块1103,还用于以多层饼图的中心的位置为坐标原点,根据数据项包括的数据占比,确定数据项对应的扇形区域的起始角度和终止角度;根据数据项对应的扇形区域的起始角度和终止角度,确定数据项对应的中间角度;获取数据项对应的一层饼图的半径,根据数据项对应的一层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的起点的横坐标和纵坐标;获取第二显示间距和多层饼图中最外层饼图的半径,第二显示间距为引线分隔显示时,引线的转折点与最外层饼图的距离,根据第二显示间距、最外层饼图的半径和数据项对应的中间角度,确定数据项包括的标签信息的引线的转折点的横坐标和纵坐标;获取第三显示间距,根据最外层饼图的半径和第三显示间距确定数据项包括的标签信息的引线的终点的横坐标;将数据项包括的标签信息的引线的转折点的纵坐标,作为数据项包括的标签信息的引线的终点的纵坐标;将数据项包括的标签信息的引线的终点的横坐标作为数据项包括的标签信息的横坐标,将数据项包括的标签信息的引线的终点的纵坐标作为数据项包括的标签信息的纵坐标。
在另一种可能的实现方式中,初始位置确定模块1103,还用于对于多层饼图中的任一层饼图,从层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为当前数据项对应的扇形区域的起始角度,根据当前数据项包括的数据占比和当前数据项对应的扇形区域的起始角度,确定当前数据项对应的扇形区域的终止角度;将当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据下一数据项包括的数据占比和下一数据项对应的扇形区域的起始角度,确定下一数据项对应的扇形区域的终止角度;将下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,得到每个数据项对应的扇形区域的起始角度和终止角度。
在另一种可能的实现方式中,数据项显示模块1105,还用于确定多层饼图对应的可见区域,可见区域用于显示标签信息和标签信息的引线;响应于可见区域包括第一目标位置和第二目标位置,在第一目标位置处显示标签信息,在第二目标位置处显示引线。
在本公开实施例中,获取待处理的多层饼图,多层饼图为通过数据可视化应用生成的,获取多层饼图对应的至少两个数据项,数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息,根据数据项包括的数据占比,确定用于显示数据项包括的标签信息的第一初始位置和用于显示标签信息的引线的第二初始位置,引线用于从数据项对应的扇形区域引出至数据项包括的标签信息,通过根据标签的第一初始位置,对标签进行标签碰撞检测,确定标签的第一目标位置,可以避免多层饼图的标签出现隐藏或者堆叠,从而可以提高饼图的标签展示量,通过根据引线的第二初始位置,对引线进行角度重叠检测,确定引线的第二目标位置,可以避免标签的引线出现堆叠,通过根据第一目标位置和第二目标位置,显示数据项,并且,引线用于从数据项对应的扇形区域引出至数据项对应的标签信息,可以通过引线清楚地展示出标签信息和多层饼图的数据项的对应关系,很好地支持了多层饼图的标签信息的展示。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的多层饼图的标签信息处理装置在进行多层饼图的标签信息处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的多层饼图的标签信息处理装置与多层饼图的标签信息处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图12示出了本公开一个示例性实施例提供的终端1200的结构框图。该终端1200可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的多层饼图的标签信息处理方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、触摸显示屏1205、摄像头组件1206、音频电路1207、定位组件1208和电源1209中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在再一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
定位组件1208用于定位终端1200的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1208可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源1209用于为终端1200中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。当电源1209包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
加速度传感器1211可以检测以终端1200建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1211可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1211采集的重力加速度信号,控制触摸显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1211还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1212可以检测终端1200的机体方向及转动角度,陀螺仪传感器1212可以与加速度传感器1211协同采集用户对终端1200的3D动作。处理器1201根据陀螺仪传感器1212采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1213可以设置在终端1200的侧边框和/或触摸显示屏1205的下层。当压力传感器1213设置在终端1200的侧边框时,可以检测用户对终端1200的握持信号,由处理器1201根据压力传感器1213采集的握持信号进行左右手识别或快捷操作。当压力传感器1213设置在触摸显示屏1205的下层时,由处理器1201根据用户对触摸显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1214用于采集用户的指纹,由处理器1201根据指纹传感器1214采集到的指纹识别用户的身份,或者,由指纹传感器1214根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1201授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1214可以被设置终端1200的正面、背面或侧面。当终端1200上设置有物理按键或厂商Logo时,指纹传感器1214可以与物理按键或厂商Logo集成在一起。
光学传感器1215用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1215采集的环境光强度,控制触摸显示屏1205的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1205的显示亮度;当环境光强度较低时,调低触摸显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1215采集的环境光强度,动态调整摄像头组件1206的拍摄参数。
接近传感器1216,也称距离传感器,通常设置在终端1200的前面板。接近传感器1216用于采集用户与终端1200的正面之间的距离。在一个实施例中,当接近传感器1216检测到用户与终端1200的正面之间的距离逐渐变小时,由处理器1201控制触摸显示屏1205从亮屏状态切换为息屏状态;当接近传感器1216检测到用户与终端1200的正面之间的距离逐渐变大时,由处理器1201控制触摸显示屏1205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图13是本公开实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)1301和一个或一个以上的存储器1302,其中,所述存储器1302中存储有至少一条指令,所述至少一条指令由所述处理器1301加载并执行以实现上述各个方法实施例提供的多层饼图的标签信息处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中多层饼图的标签信息处理方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种多层饼图的标签信息处理方法,其特征在于,所述方法包括:
获取待处理的多层饼图,所述多层饼图为通过数据可视化应用生成的;
获取所述多层饼图对应的至少两个数据项,所述数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息;
根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,所述引线用于从所述数据项对应的扇形区域引出至所述数据项包括的标签信息;
根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置;
根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置;
根据所述第一目标位置和所述第二目标位置,显示所述数据项。
2.根据权利要求1所述的方法,其特征在于,所述根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置,包括:
获取所述标签信息的第一显示间距,所述第一显示间距是所述标签信息与相邻标签信息分隔显示时的距离;
根据所述第一显示间距和所述标签信息的第一初始位置,确定所述标签信息的第一目标位置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一显示间距和所述标签信息的第一初始位置,确定所述标签信息的第一目标位置,包括:
以所述多层饼图的中心的位置为坐标原点,根据所述标签信息的第一初始位置,确定所述标签信息所在的象限;
根据所述标签信息所在的象限,确定所述标签信息所在的分组,所述标签信息所在的分组为第一组或者第二组,所述第一组中的标签信息用于显示在所述多层饼图的左侧,所述第二组中的标签信息用于显示在所述多层饼图的右侧;
根据所述标签信息的第一初始位置确定所述标签信息的纵坐标;
根据所述标签信息的第一显示间距、所述纵坐标和所述标签信息所在的分组,确定所述标签信息的第一目标位置。
4.根据权利要求3所述的方法,其特征在于,所述根据所述标签信息的第一显示间距、所述纵坐标和所述标签信息所在的分组,确定所述标签信息的第一目标位置,包括:
获取所述标签信息所在分组的上一个标签信息的纵坐标;
确定所述标签信息的纵坐标和所述上一个标签信息的纵坐标之间的差值;
响应于所述差值小于所述第一显示间距,将所述上一个标签信息的纵坐标和所述第一显示间距的差值确定为所述标签信息的第一目标位置。
5.根据权利要求1所述的方法,其特征在于,所述根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置,包括:
获取所述引线的第一显示角度,所述第一显示角度是所述引线与相邻引线分隔显示时,所述引线的起点与所述多层饼图的中心的连线之间的夹角;
根据所述第一显示角度和所述引线的第二初始位置,确定所述引线的第二目标位置。
6.根据权利要求5所述的方法,其特征在于,所述第二初始位置包括起点,所述根据所述第一显示角度和所述引线的第二初始位置,确定所述引线的第二目标位置,包括:
以所述多层饼图的中心的位置为坐标原点,确定第一连线与横轴的第一夹角,所述第一连线为所述引线的起点与所述坐标原点的连线,以及,确定第二连线与横轴的第二夹角,所述第二连线为上一引线的起点与所述坐标原点的连线,所述上一引线为与所述引线在顺时针方向上相邻的引线;
响应于所述第一夹角与所述第二夹角的差值小于所述第一显示角度,根据所述第二夹角和所述第一显示角度,在所述引线的起点的逆时针方向上更新所述引线的起点,得到所述引线的第二目标位置。
7.根据权利要求1所述的方法,其特征在于,所述第二初始位置包括起点、转折点和终点,所述根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,包括:
以所述多层饼图的中心的位置为坐标原点,根据所述数据项包括的数据占比,确定所述数据项对应的扇形区域的起始角度和终止角度;
根据所述数据项对应的扇形区域的起始角度和终止角度,确定所述数据项对应的中间角度;
获取所述数据项对应的一层饼图的半径,根据所述数据项对应的一层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的起点的横坐标和纵坐标;
获取第二显示间距和所述多层饼图中最外层饼图的半径,所述第二显示间距为所述引线分隔显示时,引线的转折点与所述最外层饼图的距离,根据所述第二显示间距、所述最外层饼图的半径和所述数据项对应的中间角度,确定所述数据项包括的标签信息的引线的转折点的横坐标和纵坐标;
获取第三显示间距,根据所述最外层饼图的半径和所述第三显示间距确定所述数据项包括的标签信息的引线的终点的横坐标;
将所述数据项包括的标签信息的引线的转折点的纵坐标,作为所述数据项包括的标签信息的引线的终点的纵坐标;
将所述数据项包括的标签信息的引线的终点的横坐标作为所述数据项包括的标签信息的横坐标,将所述数据项包括的标签信息的引线的终点的纵坐标作为所述数据项包括的标签信息的纵坐标。
8.根据权利要求7所述的方法,其特征在于,所述根据所述数据项包括的数据占比,确定所述数据项对应的扇形区域的起始角度和终止角度,包括:
对于所述多层饼图中的任一层饼图,从所述层饼图对应的数据项中选择任一个数据项作为当前数据项,将预设角度确定为所述当前数据项对应的扇形区域的起始角度,根据所述当前数据项包括的数据占比和所述当前数据项对应的扇形区域的起始角度,确定所述当前数据项对应的扇形区域的终止角度;
将所述当前数据项对应的扇形区域的终止角度作为下一数据项对应的扇形区域的起始角度,根据所述下一数据项包括的数据占比和所述下一数据项对应的扇形区域的起始角度,确定所述下一数据项对应的扇形区域的终止角度;
将所述下一数据项对应的扇形区域的终止角度作为再下一数据项对应的扇形区域的起始角度,以此类推,得到每个所述数据项对应的扇形区域的起始角度和终止角度。
9.一种多层饼图的标签信息处理装置,其特征在于,所述装置包括:
多层饼图获取模块,用于获取待处理的多层饼图,所述多层饼图为通过数据可视化应用生成的;
数据项获取模块,用于获取所述多层饼图对应的至少两个数据项,所述数据项包括数据占比和标签信息,用于显示一个扇形区域和对应的标签信息;
初始位置确定模块,用于根据所述数据项包括的数据占比,确定用于显示所述数据项包括的标签信息的第一初始位置和用于显示所述标签信息的引线的第二初始位置,所述引线用于从所述数据项对应的扇形区域引出至所述数据项对应的标签信息;
目标位置确定模块,用于根据所述标签信息的第一初始位置,对所述标签信息进行标签碰撞检测,确定所述标签信息的第一目标位置;
所述目标位置确定模块,还用于根据所述引线的第二初始位置,对所述引线进行角度重叠检测,确定所述引线的第二目标位置;
数据项显示模块,用于根据所述第一目标位置和所述第二目标位置,显示所述数据项。
10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求8任一项所述的多层饼图的标签信息处理方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337274.5A CN113553368A (zh) | 2020-04-26 | 2020-04-26 | 多层饼图的标签信息处理方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337274.5A CN113553368A (zh) | 2020-04-26 | 2020-04-26 | 多层饼图的标签信息处理方法、装置及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553368A true CN113553368A (zh) | 2021-10-26 |
Family
ID=78101441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337274.5A Pending CN113553368A (zh) | 2020-04-26 | 2020-04-26 | 多层饼图的标签信息处理方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553368A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138893A (zh) * | 2022-01-29 | 2022-03-04 | 杭州广立微电子股份有限公司 | 图表展示方法及图表标签展示系统 |
CN115063564A (zh) * | 2022-07-13 | 2022-09-16 | 如你所视(北京)科技有限公司 | 用于二维显示图像中的物品标签展示方法、装置及介质 |
-
2020
- 2020-04-26 CN CN202010337274.5A patent/CN113553368A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138893A (zh) * | 2022-01-29 | 2022-03-04 | 杭州广立微电子股份有限公司 | 图表展示方法及图表标签展示系统 |
CN115063564A (zh) * | 2022-07-13 | 2022-09-16 | 如你所视(北京)科技有限公司 | 用于二维显示图像中的物品标签展示方法、装置及介质 |
CN115063564B (zh) * | 2022-07-13 | 2024-04-30 | 如你所视(北京)科技有限公司 | 用于二维显示图像中的物品标签展示方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304265B (zh) | 内存管理方法、装置及存储介质 | |
CN111597008A (zh) | 弹窗管理方法、装置、终端及存储介质 | |
CN110213153B (zh) | 未读消息的显示方法、获取方法、装置、终端及存储介质 | |
CN112181572A (zh) | 互动特效展示方法、装置、终端及存储介质 | |
CN111311155A (zh) | 修改配送位置的方法、装置、系统、设备以及存储介质 | |
CN112052354A (zh) | 视频推荐方法、视频展示方法、装置及计算机设备 | |
CN111694478A (zh) | 内容展示方法、装置、终端及存储介质 | |
CN112257006A (zh) | 页面信息的配置方法、装置、设备及计算机可读存储介质 | |
CN111582993A (zh) | 获取目标对象的方法、装置、电子设备及存储介质 | |
CN113553368A (zh) | 多层饼图的标签信息处理方法、装置及终端 | |
CN111083554A (zh) | 直播礼物显示的方法和装置 | |
CN111682983B (zh) | 界面显示方法、装置、终端及服务器 | |
CN110971840B (zh) | 视频贴图方法及装置、计算机设备及存储介质 | |
CN112770177A (zh) | 多媒体文件生成方法、多媒体文件发布方法及装置 | |
CN111370096A (zh) | 交互界面的显示方法、装置、设备及存储介质 | |
CN111258683A (zh) | 检测方法、装置、计算机设备及存储介质 | |
CN111275607A (zh) | 界面显示方法、装置、计算机设备及存储介质 | |
CN111949341A (zh) | 展示信息的方法、装置、设备及存储介质 | |
CN113010258B (zh) | 图片下发方法、装置、设备及存储介质 | |
CN111641853B (zh) | 多媒体资源加载方法、装置、计算机设备及存储介质 | |
CN114329292A (zh) | 资源信息的配置方法、装置、电子设备以及存储介质 | |
CN114140105A (zh) | 资源转移方法、装置、设备及计算机可读存储介质 | |
CN113592997A (zh) | 基于虚拟场景的物体绘制方法、装置、设备及存储介质 | |
CN112231619A (zh) | 转换方法、装置、电子设备及存储介质 | |
CN111523876A (zh) | 支付方式的显示方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |