CN1763743A - 图表上的自动标签放置系统和方法 - Google Patents

图表上的自动标签放置系统和方法 Download PDF

Info

Publication number
CN1763743A
CN1763743A CNA2005100885222A CN200510088522A CN1763743A CN 1763743 A CN1763743 A CN 1763743A CN A2005100885222 A CNA2005100885222 A CN A2005100885222A CN 200510088522 A CN200510088522 A CN 200510088522A CN 1763743 A CN1763743 A CN 1763743A
Authority
CN
China
Prior art keywords
layout
score
label
chart
style
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.)
Granted
Application number
CNA2005100885222A
Other languages
English (en)
Other versions
CN1763743B (zh
Inventor
M·瓦非尔蒂斯
M·阿格拉瓦拉
A·C·埃弗索尔
D·P·科瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1763743A publication Critical patent/CN1763743A/zh
Application granted granted Critical
Publication of CN1763743B publication Critical patent/CN1763743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)
  • Preparing Plates And Mask In Photomechanical Process (AREA)

Abstract

提供了一种用于优化与诸如图表等可视数据对象相关联的标签的布局的算法。标签首先被放置到将标签定义为形状的图表定义文件中。创建该标签的初始布局并对其评分。然后迭代地操纵形状直到获得对应于具有最接近于最优得分的得分的布局的最优布局。然后使用该最优布局在屏幕上呈现可视数据对象。

Description

图表上的自动标签放置系统和方法
相关申请的参照
本专利申请涉及2004年9月15日提交的,名为“Common Charting UsingShapes(使用形状的公用制图)”的专利申请第10/941,566。该相关申请被转让被本专利申请的受让人,并通过引用结合于此。
背景技术
图表是数字数据的图形表示。图表对于以简明且易于理解的形式呈现复杂数据而言尤其有用。在当今的桌面发行环境中,用户可使用图表创建令人印象深刻的演示。图表基于输入到诸如来自美国华盛顿州雷蒙德市的微软公司的“EXCEL”等应用程序的底层数据。底层数据然后可用于以多种不同的格式创建数据图表,如饼形图、条形图、直方图、折线图等等。另外,图表的每一部分可具有相关联的颜色、纹理和其它效果,以改进图表的外观,这对于传达信息而言是十分重要的。
图表中包括的标签有助于图表的视觉功能和演示。如果用户激活自动化数据标签功能,则具有较多数据点的图表将变得难以阅读。一般而言,先前提供的自动化图表加标签算法导致重叠的文本和未被优化以使用图表区域的标签定位。因此,需要替换的方法。
发明内容
本发明的实施例涉及通过优化图表和图上的标签的放置解决了上述限制的系统和方法。标签的优化是依照基于一组约束对标签的指定定位进行评分的算法来提供的。标签的当前定位越符合规定的约束,该图表的得分就越高。该算法视图通过多次调用一个函数来最小化得分,该函数在每次被调用时重新定位单个标签。在本发明的一个实现中,手动地定位的标签在优化过程中不被考虑。
在本发明的一个方面,依照在图表或图的标签或锚点(anchor)上操作的目标函数或评分函数以及扰动函数来定义优化过程的函数。锚点指的是具有相关联的标签的图表的显示元素,如饼形图的特定的一片、泡式图的一个泡或其它元素,取决于所使用的图表。目标函数指的是定义可用于对图表评分的优化目标的函数。例如,目标函数可以对应于最小化标签的重叠、最小化自锚点的边缘的距离、优化标签位置的其它目标、以及这些目标的可能组合。扰动函数指的是定义图表上标签的调整的限制的函数。例如,扰动函数可定义用于重定位标签的范围限制、可以对于标签所作出的改变类型的有限子集、以及其它限制。
附图说明
图1示出了可在本发明的一个示例性实施例中使用的示例性计算设备。
图2依照本发明示出了在标签位置优化之前和之后具有自动加标签的饼形图的示例性视图。
图3依照本发明示出了在标签位置优化之前和之后具有自动加标签的泡式图的示例性视图。
图4依照本发明示出了在标签位置优化之前和之后具有自动加标签的时间线图的示例性图示。
图5依照本发明示出了用于实现生成图表和优化标签位置的示例性制图系统500。
图6依照本发明示出了用于确定对应于标签的最优布局的可视数据对象布局的示例性伪代码。
具体实施方式
现在将参考附图更完整地描述本发明,附图形成了本发明的一部分,并作为说明示出了用于实施本发明的具体示例性实施例。然而,本发明可以用许多不同的形式来实施,且不应当被解释为限于此处所陈述的实施例;相反,提供这些实施例使得本公开内容能够彻底和完成,并且将向本领域的技术人员完全传达本发明的范围。本发明可被实施为方法或设备等等。因此,本发明可采用完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。因此,以下详细描述不应当在限制的意义上考虑。
说明性操作环境
参考图1,用于实现本发明的一个示例性系统包括诸如计算设备100的计算设备。计算设备100可被配置成客户机、服务器、移动设备或任一其它计算设备。在最基本的配置中,计算设备100通常包括至少一个处理单元102和系统存储器104。根据计算设备的确切配置和类型,系统存储器104可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。系统存储器104通常包括操作系统105、一个或多个应用程序106,并且可包括程序数据107。在一个实施例中,应用程序106包括用于实现本发明的功能的图表标签优化应用程序120。这一基本配置在图1中由虚线108内的组件示出。
计算设备100可具有另外的特征或功能。例如,计算设备100也可包括另外的数据存储设备(可移动和/或不可移动),如磁盘、光盘或磁带。这类另外的存储在图1中由可移动存储109和不可移动存储110示出。计算机存储介质可包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器104、可移动存储109和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存期望的信息并可由计算设备100访问的任一其它介质。任一这类计算机存储介质可以是设备100的一部分。计算设备100也可具有(多个)输入设备112,如键盘、鼠标、输入笔、语音输入设备、触摸输入设备等等。也可包括(多个)输出设备114,如显示器、扬声器、打印机等等。
计算设备100也包含允许设备如通过网络与其它计算设备118进行通信的通信连接116。通信连接116是通信介质的一个示例。通信介质通常可以由诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据具体化,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。本发明使用的术语计算机可读介质包括存储介质和通信介质。
用于优化自动标签放置的说明性实施例
如此处所使用的,术语“图表”和“可视数据对象”互换地使用,来描述各种可视对象,如饼形图、泡式图、折线图、时间线、线图、条形图、照片、数字图像以及可具有相关联标签的其它对象。
本发明的实施例涉及使用一种算法来优化图表上标签的位置。本发明使用一些函数从一组可能的布局中搜索标签的最优布局。为将布局问题构成搜索,本发明定义了一初始布局和两个函数:基于评估标准评定布局质量的目标函数,以及操纵给定布局以产生搜索空间内的新布局的扰动函数。评分和扰动函数都由布局上的一组约束来定义。给定这两个函数,可执行搜索来确定最优布局。在一个实施例中,使用了一种模拟退火方法,作为用于确定最优布局的随机化搜索算法。
约束可被划分成两组:硬约束和软约束。硬约束由任一可接受布局所要求的特征构成,并且因此硬约束界定了可能布局的空间。相反,软约束由最终布局所期望但并不要求的特征构成。硬约束通常通过扰动函数来施加,该扰动函数被设计成仅生成满足硬约束的布局。评分函数核查给定布局满足软约束的程度。
使用该算法,可使用一组数据来填充具有标签的图表,同时优化图表区域中标签的位置。
图2依照本发明示出了在标签位置优化之前和之后具有自动加标签的饼形图的示例性视图。
视图210示出了饼形图上的标签由于饼形图中包括的数据点的数目而重叠。重叠的文本使得难以从视觉上辨别所有的标签以及它们与饼形图元素的关联。
视图220通过运行本发明的优化算法得到了具有改进加标签的饼形图。该饼形图的可读性通过优化图表空间内的标签的位置而得到很大的改进。该算法将某些标签从它们所相关的锚点(片)移开,而其它标签被移至离其锚点更近,或甚至在锚点内居中或部分居中。其它标签添加了引导线以将标签视觉上与其相关联的锚点链接。视图220示出该算法使用提供图表标签的最优布局的各种方法。
图3依照本发明示出了在标签位置优化之前和之后具有自动加标签的泡式图的示例性视图。
视图310示出可以定位泡式图上的标签使得确定其相关锚点可能是不可能的。此外,由于与泡边缘重叠的文本,标签的文本可能不是图表内的泡的最优视图的位置。
视图320是通过运行本发明的最优算法具有改进加标签的泡式图。该泡式图的可读性通过优化图表空间内的标签位置而得到很大的改进。该算法将某些标签从它们所相关的锚点(泡)移开,而其它标签被移至离其锚点更近,甚至在锚点内居中或部分居中。其它标签添加了引导线,以将标签在视觉上与其相关联的锚点链接,同时将标签移至离其相关联的锚点有一距离。视图320示出了该算法使用了类似于对饼形图所采用的各种方法所提供泡式图标签的最优布局的各种方法。
图4依照本发明示出了在标签位置优化之前和之后具有自动加标签的时间线图的示例性视图。
视图410示出时间线图上的标签由于包括在所提供的空间内的数据点的数目而重叠。此外,没有得益于本发明的自动化加标签算法不够智能来将文本空间与时间线上的数据点区分开来。
视图420是通过运行本发明的优化算法具有改进的加标签的时间线图。该时间线的可读性通过优化图表空间内标签的位置而得到很大的改进。该算法改变了文本格式,并遍及图表空间移动了标签以优化图表空间的使用。视图420示出该算法使用了类似于对上文提供的饼形图和泡式图示例所采用的各种方法的提供时间线图标签的最优布局的各种方法。
依照本发明,也可提供除图2-4中示出的实施例之外的实施例。例如,本发明可用于优化线图上、照片内或结合其它可视数据对象的标签的位置。
图5依照本发明示出了用于实现生成图表和优化标签位置的示例性制图系统500。包括在系统500中的是提供对文档504的访问的应用程序502以及用于在计算机监视器屏幕508上呈现文档504的图形模块506。
如此处所使用的,文档504是包括诸如文本和图形等用户可读信息的计算机可读文件。文档504可以由用户通过应用程序502的用户界面来查看和编辑。文档的示例性类型可包括但不限于,电子表格、演示或常规的文本文档。由此,取决于文档的类型,应用程序502可以是,例如,但不限于,微软的“WORD”、“POWERPOINT”、“EXCEL”或其它应用程序。作为示例,如屏幕508上所示,文档504是“演示”,它通常(但不总是)与“POWERPOINT”相关联。
尤其与本描述相关的是演示中的图表5i0。图5的特定实现中所示的图表510是列图表。依照其它实施例,图表510不限于列图表,而可以是任何其它类型的图表,诸如但不限于,饼形图、折线图、散布图、照片或其它可视数据对象。图表510中的各种数据最初由文档504指定。文档504用称为图表对象512的图表定义来指定图表510。
图表对象512按照图表元素定义了图表510。一般而言,图表元素是表示图表的一方面的数据单元。通常,图表元素表示图表中与图表所传达的信息或图表类型有关的一方面。示例性图表元素包括条(例如,对于条形图)、图表轴、图表图例、图表标题、图表标签、元素颜色、文本字体、元素位置、数据源等等。图表元素可以被称为与标签有关的锚点。图表对象512的一个实现是一组可扩展标记语言(XML)。为了说明,下文示出了图表对象512的示例XML:
-<c:Chart xmlns:c="chart"xmlns:s="shape">
 -<c:Scaling>
    <c:ScaleID>0</c:ScaleID>
    <c:Orientation>MinMax</c:Orientation>
  </c:Scaling>
 -<c:Scaling>
    <c:ScaleID>1</c:ScaleID>
    <c:Orientation>MinMax</c:Orientation>
  </c:Scaling>
  <c:Name>Chart1</c:Name>
 -<c:PlotArea>
    <c:Shape/>
 -<c:Graph>
    <c:Type>Column</c:Type>
    <c:SubType>Clustered</c:SubType>
    <c:Overlap>0</c:Overlap>
    <c:ScaleID>0</c:ScaleID>
    <c:ScaleID>1</c:ScaleID>
   -<c:Series>
    <c:Index>0</c:Index>
    <c:Name>Series1</c:Name>
   -<c:Shape>
      -<s:Fill>
        -<s:Pattern>
          <s:Title>Wide upward diagonal</s:Title>
          <s:Color>black</s:Color>
          <s:Color2>white</s:Color2>
         </s:Pattern>
       </s:Fill>
     -<s:Border>
         <s:Weight>0</s:Weight>
         <s:Solid>black</s:Solid>
      </s:Border>
     </c:Shape>
    -<c:DataLabels>
     -<c:Shape>
       -<s:Font>
         <s:FontName>Arial</s:FontName>
         <s:Size>18</s:Size>
         <s:AutoScale/>
      </s:Font>
    </c:Shape>
   -<c:Number>
     <c:FormatString>0.0</c:FormatString>
    </c:Number>
    <c:ShowValue/>
   </c:DataLabels>
  -<c:Category>
    <c:DataSource>0</c:DataSource>
    <c:Data>Sheet1!$A$1:$A$3</c:Data>
</c:Category>-<c:Value>
    <c:DataSource>0</c:DataSource>
    <c:Data>Sheet1!$B$1:$B$3</c:Data>
   </c:Value>
  </c:Series>
  <c:PlotVisible/>
</c:Graph>-<c:Axis>
 <c:Placement>Bottom</c:Placement>
 <c:AxisID>0</c:AxisID>
 <c:ScaleID>0</c:ScaleID>
 <c:CrossingAxis>1</c:CrossingAxis>
-<c:Shape>
  -<s:Font>
    <s:FontName>Arial</s:FontName>
    <s:Size>18</s:Size>
    <s:AutoScale/>
  </s:Font>
 </c:Shape>
-<c:Number>
  <c:SourceLinked/>
  <c:BuiltInFormat>0</c:BuiltInFormat>
  </c:Number>
  <c:MajorTick>None</c:MajorTick>
  <c:TickMarkSkip>1</c:TickMarkSkip>
  <c:Type>Automatic</c:Type>
 </c:Axis>
-<c:Axis>
  <c:Placement>Left</c:Placement>
  <c:AxisID>1</c:AxisID>
  <c:ScaleID>1</c:ScaleID>
  <c:CrossingAxis>0</c:CrossingAxis>
  <c:CrossesAt>Minimum</c:CrossesAt>
  <c:CrossBetween>Between</c:CrossBetween>
 -<c:Shape>
   -<s:Font>
       <s:FontName>Arial</s:FontName>
       <s:Size>18</s:Size>
       <s:AutoScale/>
     </s:Font>
   </c:Shape>
  -<c:Number>
     <c:SourceLinked  />
     <c:BuiltInFormat>0</c:BuiltInFormat>
   </c:Number>
   <c:MajorTick>Cross</c:MajorTick>
   <c:MinorTick>Cross</c:MinorTick>
   <c:Type>Value</c:Type>
   <c:MajorUnit>5</c:MajorUnit>
 </c:Axis></c:PlotArea></c:Chart>
文档504通常也具有其它文档数据514,包括但不限于文本和格式化信息。依照一个实现,当启动应用程序502且打开文档504时,将图表对象512传递到图形模块506的图形接口516用于呈现。
图形接口516确定图表对象512表示什么类型的图形。可由图形接口516处理的图形的类型包括但不限于,图示、图表或任意形状。图表对象512包括指示它定义图表的标识符。基于图表标识符,图形接口516确定图表对象512定义了图表,并将其发送到制图模块518。
制图模块518包括转换引擎520,它将图表对象512转换成图形模块506用于将图表510呈现到屏幕508的形式。具体地,转换引擎520将图表对象512转换成基于形状的图表定义522。如其名字所暗示的,基于形状的图表定义522按照图形而非图表元素来定义图表。使用形状能够通过允许与图形交互的机制改进了图表呈现过程、图表外观以及图表操纵。
在转换过程中,转换引擎520执行若干操作。例如,转换引擎520从图表对象512中引用的数据源检索构成图表510的数据(例如,数字数据)。数据源可以是文档504本身,或某一其它来源,诸如但不限于,另一文档、数据库、文件、因特网或队列。除数据之外,转换引擎520可检索描述如何格式化数据的数字格式化信息。数字格式化信息包括但不限于,货币符号、小数位数、百分比或分数格式、或日期和时间格式。
转换引擎520也将图表元素转换成形状,如线、矩形、圆形、三角形等等。形状是简单地表示图表元素的可视外观的数据单元,且不依靠或依赖于底层数字图表数据。由此,例如,图表对象512中的条将被转换成基于形状的图表定义522中的矩形;图表轴将被转换成线,等等。
另外,转换引擎520将选中的相关图形组合,以便于由用户操纵相关图形。图形接口516提供了允许用户与相关形状组交互的功能。转换引擎520通过组合诸如但不限于相关数据标签和相关数据序列等相关图表元素利用了那些功能。在检索数据、将图表元素转换成形状、并组合相关形状之后,转换引擎520生成基于图形的图表定义522。
基于形状的图表定义522的一个实现由XML代码组成。为了说明,下文示出了一个示例性基于形状的图表定义522的XML代码:
-<group>
<id>Chart</id>
-<shapes>
-<rect>
 <id>ChartArea</id>
 <style>margin-left:0;margin-top:9.75pt;width:501pt;height:319.5pt;z-index:1</style>
-<border>
 <Solid>black</Solid>
 <Weight>0</Weight>
 </border>
 </rect>
-<group>
 <id>Series1</id>
 <style>margin-left:88.5pt;margin-top:60pt;width:359.25pt;height:220.5pt;z-index:3</style>
 <coordorigin>438,743</coordorigin>
 <coordsize>479,294</coordsize>
-<Fill>
-<Pattern>
<Title>Wide upward diagonal</Title>
 <Color>black</Color>
 <Color2>white</Color2>
 </Pattern>
 </Fill>
-<border>
 <Solid>black</Solid>
 <Weight>0</Weight>
 </border>
-<shapes>
-<rect>
 <id>Point1</id>
 <style>left:438;top:839;width:80;height:198</style>
 </rect>
-<rect>
 <id>Point2</id>
 <style>left:638;top:743;width:80;height:294</style>
 </rect>
-<rect>
 <id>Point3</id>
 <style>left:837;top:931;width:80;height:106</style>
 </rect>
 </shapes>
 </group>
-<group>
 <id>Y Axis</id>
-<border>
 <Solid>black</Solid>
 <Weight>0</Weight>
 </border>
-<shapes>
-<line>
 <id>Y Axis Line</id>
 <style>z-index:4</style>
 <from>45pt,32.25pt</from>
 <to>45pt,280.5pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark1</id>
 <style>z-index:5</style>
 <from>40pt,281pt</from>
 <to>48pt,281pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark2</id>
 <style>z-index:6</style>
 <from>40pt,256pt</from>
 <to>48pt,256pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark3</id>
 <style>z-index:7</style>
 <from>40pt,231pt</from>
 <to>48pt,231pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark4</id>
 <style>z-index:8</style>
 <from>40pt,207pt</from>
 <to>48pt,207pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark5</id>
 <style>z-index:9</style>
 <from>40pt,182pt</from>
 <to>48pt,182pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark6</id>
 <style>z-index:10</style>
 <from>40pt,157pt</from>
 <to>48pt,157pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark7</id>
 <style>z-index:11</style>
 <from>40pt,132pt</from>
 <to>48pt,132pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark8</id>
 <style>z-index:12</style>
 <from>40pt,108pt</from>
 <to>48pt,108pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark9</id>
 <style>z-index:13</style>
 <from>40pt,83pt</from>
 <to>48pt,83pt</to>
 </line>
-<line>
<id>Y Axis Tick Mark 10</id>
 <style>z-index:14</style>
 <from>40pt,57pt</from>
 <to>48pt,57pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark 11</id>
 <style>z-index:15</style>
 <from>40pt,33pt</from>
 <to>48pt,33pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark 12</id>
 <style>z-index:16</style>
 <from>38.25pt,281pt</from>
 <to>49.5pt,281pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark 13</id>
 <style>z-index:17</style>
 <from>38.25pt,157pt</from>
 <to>49.5pt,157pt</to>
 </line>
-<line>
 <id>Y Axis Tick Mark 14</id>
 <style>z-index:18</style>
 <from>38.25pt,33pt</from>
 <to>49.5pt,33pt</to>
 </line>
 </shapes>
 </group>
-<line>
 <id>X Axis</id>
 <style>z-index:19</style>
 <from>44.25pt,281pt</from>
 <to>492.75pt,281pt</to>
-<border>
 <Solid>black</Solid>
 <Weight>0</Weight>
 </border>
 </line>
-<group>
 <id>Series 1 DataLabels</id>
 <style>margin-left;106.5pt;margin-top:33pt;width:324pt;height:164.25pt;z-index:106:20</style>
 <coordorigin>462,707></coordorigin>
 <coordsize>432,219</coordsize>
-<Font>
 <FontName>Arial</FontName>
 <Size>18</Size>
 <AutoScale/>
 </Font>
-<shapes>
-<rect>
 <id>Series 1 DataLabel 1</id>
 <style>left:462;top:803;width:33;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">6.0</div>
 </textbox>
 </rect>
-<rect>
 <id>Series 1 DataLabel 2</id>
 <style>left:661;top:707;width:33;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">8.9</div>
 </textbox>
 </rect>
-<rect>
 <id>Series1 DataLabel 3</id>
 <style>left:861;top:895;width:33;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">3.2</div>
 </textbox>
 </rect>
 </shapes>
 </group>
-<group>
 <id>Y Axis Labels</id>
 <style>margin-left:10.5pt;margin-top:22.5pt;width:19.5pt;height:271.5pt;z-index:21</style>
 <coordorigin>334,693</coordorigin>
 <coordsize>26,362</coordsize>
-<Font>
 <FontName>Arial</FontName>
 <Size>18</Size>
 <AutoScale/>
 </Font>
-<shapes>
-<rect>
 <id>Y Axis Labels 0</id>
 <style>left:347;top:1024;width:13;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">0</div>
 </textbox>
 </rect>
-<rect>
 <id>Y Axis Labels 5</id>
<style>left:347;top:858;width:13;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">5</div>
 </textbox>
 </rect>
-<rect>
 <id>Y Axis Labels 10</id>
 <style>left:334;top:693;width:26;height:31;wrap-style:none;text-anchor:top</style>
stroked="f">
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">10</div>
 </textbox>
 </rect>
 </shapes>
 </group>
-<group>
 <id>X Axis Labels</id>
 <style>margin-left:112.5pt;margin-top:296.25pt;width:312pt;height:23.25pt;z-index:22</style>
 <coordorigin>470,1058</coordorigin>
 <coordsize>416,31</coordsize>
-<shapes>
-<rect>
 <id>X Axis Labels Category 1</id>
 <style>left:470;top:1058;width:15;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">A</div>
 </textbox>
 </rect>
-<rect>
 <id>X Axis Labels Category 2</id>
 <style>left:670;top:1058;width:16;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">B</div>
 </textbox>
 </rect>
-<rect>
 <id>X Axis Labels Category 3</id>
 <style>left:869;top:1058;width:17;height:31;wrap-style:none;text-anchor:top</style>
-<textbox style="fit-shape-to-text:t"inset="0,0,0,0">
 <div style="text-align:left">C</div>
 </textbox>
 </rect>
 </shapes>
 </group>
 </shapes>
 </group>
图形接口516接收基于形状的图表定义522,并在屏幕上508呈现图表510作为由基于形状的图表定义指定的一组形状。图形接口516通常通过调用操作系统或显示控制器功能来执行呈现。例如,在WINDOWS操作系统中,图形接口516可调用图形显示接口(GID+)。
如图所示,图形模块506包括一组图形服务524。图形服务524包括可由应用程序访问来操纵图表510的服务。图形服务524提供了访问该服务的一个或多个应用编程接口(API)。
由于图形模块506呈现了多种形状,因此图形服务524能够提供用于操纵图表510的高级函数。图形服务524能够例如,在图表内的形状上执行矢量图形函数。为了说明,矩形可通过调用图形服务524移动形状的单个函数来移动,而非通过调用多个低级函数在新位置中重新绘制该矩形来移动。另外,图形模块506对于多个应用程序是公用的,使得形状操纵/编辑和外观在应用程序之间是一致的。由此,图形模块506可呈现用于编辑图表510中的形状的图形用户界面,而不管应用程序502的类型是什么。
标签优化526是系统500内针对本发明的代码。标签优化526接收基于形状的图表定义522,并依照优化算法来优化标签的位置。如先前所提到的,基于形状的图表定义522允许标签能够被容易地移动,因为它们是按照其形状而非要求重新绘制标签的其它低级函数来定义的。标签优化526可以在屏幕508上呈现了图表510之前或之后使用,来优化标签的定位。例如,依照优化算法的标签定位可以对于所呈现的每一图表是自动的。相反,标签优化可以依照用户选择来提供,其中,用户肯定地选择优化标签。在一个实现中,由用户手动定位的标签在优化过程中被忽略。
术语模块在一般意义上使用,以描述可用于执行一个或多个期望功能的组件。模块可以用各种方法和形式来实现。例如,模块可以用硬件、软件、固件或硬件、软件和/或固件的各种组合来实现,取决于诸如速度、成本、大小等因素。例如,但非限制,在一个实现中,系统100中的每一模块包括储存在计算机可读介质上并在诸如上文参考图1所描述的计算系统等计算系统上执行的软件,如动态链接库(DLL)。
图6依照本发明示出了用于确定对应于标签的最优布局的可视数据对象的布局的示例性伪代码。
实现示例性算法600要求指定不同的函数。InitializeLayout()函数定义了每一可视元素的初始放置,并由此提供了搜索的起始点。PertubLayout()函数对应于先前描述的扰动函数,并提供了将给定布局改为新布局的方法。RevertLayout()函数倒转了PerturbLayout()的动作,以从新布局返回到前一布局。Random()函数返回0.0和1.0之间的数字。最后,对应于先前描述的目标函数的ScoreLayout()函数计算当前布局如何接近最优。在一个实施例中,终止条件可以根据用于实现有用布局的时间限制、布局对于最优的接近程度以及其它因素来变化。在另一实施例中,得分被定义为正,且得分越低,布局越好。因此,目标是根据所使用的约束来最小化得分。对于要使用的布局可接受的得分依赖于算法的终止条件。
如在伪代码中所示的,该算法接受搜索空间内所有的好的移动,并且用温度T的指数函数的概率也接受某些差的移动。当算法前进时,T被退火(或减少),导致接受差移动的概率的降低。以此方式接受差移动允许算法避开评分函数中的局部最小值。
为提供标签的最优布局而定义的约束可包括诸如最小化自锚点的距离、最小化标签的重叠、最小化与元素的重叠、字体限制、方向限制以及影响如何操纵标签的其它限制等约束。可以将任意数量的约束注入到算法中,用于操纵标签来优化其在可查看空间中的位置。
以上说明书、示例和数据提供了本发明的组成部分的制造和使用的完整描述。由于可以在不脱离本发明的精神和范围的情况下作出本发明的许多实施例,本发明驻留在所附权利要求书中。

Claims (21)

1.一种用于自动定位与可视数据对象相关联的标签的计算机实现的方法,包括:
确定所述标签的第一布局;
对所述第一布局评分以确定第一得分;
确定所述标签的第二布局;
对所述第二布局评分以确定第二得分;
将所述第一得分与所述第二得分进行比较;以及
根据所述第一得分和第二得分的比较,用所述第一布局和第二布局之一继续,作为用于呈现所述可视数据对象的选中的布局。
2.如权利要求1所述的计算机实现的方法,其特征在于,对所述第一布局评分以确定第一分数还包括执行一目标函数,其中,所述目标函数提供了用于对所述第一布局评分的目标。
3.如权利要求2所述的计算机实现的方法,其特征在于,所述目标对应于最小化所述标签的重叠。
4.如权利要求2所述的计算机实现的方法,其特征在于,所述目标对应于最小化从所述标签到图表中其相关联锚点的距离。
5.如权利要求1所述的计算机实现的方法,其特征在于,对所述第一布局评分以确定第一得分还包括将与所述第一布局相关联的得分与同最优布局相关联的另一得分进行比较。
6.如权利要求5所述的计算机实现的方法,其特征在于,用所述第一布局和所述第二布局之一继续还包括用最接近地对应于最优布局的布局继续。
7.如权利要求1所述的计算机实现的方法,其特征在于,确定所述标签的第二布局还包括执行一扰动函数,其中,所述扰动函数依照一组约束改变所述第一布局。
8.如权利要求7所述的计算机实现的方法,其特征在于,所述扰动函数对应于调整包括在图表内的单个标签的一方面。
9.如权利要求1所述的计算机实现的方法,其特征在于,还包括重复确定所述标签的额外布局和对所述额外布局评分的多次迭代,直到达到逼近最优布局的布局。
10.一种用于呈现图表的系统,包括:
一图表对象,它被安排成用图表元素定义图表;
一图形模块,它可用于呈现形状;
一制图模块,它可用于基于图表对象生成基于形状的图表定义,其中,所述基于形状的图表定义用可由所述图形模块呈现的形状定义了所述图表;以及
一标签优化,它依照最优布局在所述图表内自动定位与所述图表相关联的标签。
11.如权利要求10所述的系统,其特征在于,所述标签优化应用程序包括计算机可执行指令,用于:
确定所述标签的第一布局,
对所述第一布局评分以确定第一得分,
确定所述标签的第二布局,
对所述第二布局评分以确定第二得分,
将所述第一得分与所述第二得分进行比较,以及
根据所述第一得分和所述第二得分的比较,用所述第一布局和所述第二布局之一继续,作为用于呈现所述可视数据对象的所选中的布局。
12.如权利要求11所述的系统,其特征在于,对所述第一布局评分以确定第一得分还包括执行一目标函数,其中,所述目标函数提供了用于对所述第一布局评分的目标。
13.如权利要求11所述的系统,其特征在于,对所述第一布局评分以确定第一得分还包括将与所述第一布局相关联的得分与同最优布局相关联的另一得分进行比较。
14.如权利要求11所述的系统,其特征在于,确定所述标签的第二布局还包括执行一扰动函数,其中,所述扰动函数依照一组约束改变所述第一布局。
15.如权利要求11所述的系统,其特征在于,还包括重复确定所述标签的额外布局并对所述额外布局评分的多次迭代,直到达到逼近最优布局的布局。
16.一种包括计算机可执行指令的计算机可读介质,所述指令自动定位与可视数据对象相关联的标签,所述指令包括:
确定所述标签的第一布局;
对所述第一布局评分以确定第一得分;
确定所述标签的第二布局;
对所述第二布局评分以确定第二得分;
将所述第一得分与所述第二得分进行比较;以及
根据所述第一得分和所述第二得分的比较,用所述第一布局和所述第二布局之一继续,作为用于呈现所述可视数据对象的所选中的布局。
17.如权利要求16所述的计算机可读介质,其特征在于,对所述第一布局评分以确定第一得分还包括执行一目标函数,其中,所述目标函数提供了用于对所述第一布局评分的目标。
18.如权利要求16所述的计算机可读介质,其特征在于,对所述第一布局评分以确定第一得分还包括将与所述第一布局相关联的得分与同最优布局相关联的另一得分进行比较。
19.如权利要求18所述的计算机可读介质,其特征在于,用所述第一布局和所述第二布局之一继续还包括用最接近地对应于最优布局的布局继续。
20.如权利要求16所述的计算机可读介质,其特征在于,确定所述标签的第二布局还包括执行一扰动函数,其中,所述扰动函数依照一组约束改变所述第一布局。
21.如权利要求16所述的计算机可读介质,其特征在于,还包括重复确定所述标签的额外布局和对所述额外布局评分的多次迭代,直到达到逼近最优布局的布局。
CN2005100885222A 2004-10-18 2005-07-29 图表上的自动标签放置系统和方法 Active CN1763743B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/968,619 US7292244B2 (en) 2004-10-18 2004-10-18 System and method for automatic label placement on charts
US10/968,619 2004-10-18

Publications (2)

Publication Number Publication Date
CN1763743A true CN1763743A (zh) 2006-04-26
CN1763743B CN1763743B (zh) 2010-05-12

Family

ID=35788724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100885222A Active CN1763743B (zh) 2004-10-18 2005-07-29 图表上的自动标签放置系统和方法

Country Status (5)

Country Link
US (1) US7292244B2 (zh)
EP (1) EP1647896A3 (zh)
JP (1) JP2006114013A (zh)
KR (1) KR101159325B1 (zh)
CN (1) CN1763743B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426368A (zh) * 2014-09-03 2016-03-23 腾讯科技(北京)有限公司 信息显示方法、装置及电子设备
CN106372230A (zh) * 2016-09-09 2017-02-01 天津海量信息技术股份有限公司 一种图表标签统计方法及装置
CN107544950A (zh) * 2017-07-26 2018-01-05 阿里巴巴集团控股有限公司 添加标签的方法及装置

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101255A1 (en) * 2005-11-02 2007-05-03 Microsoft Corporation Chart element variations
US20070143673A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Extensible architecture for chart styles and layouts
JP2007205804A (ja) * 2006-01-31 2007-08-16 Canon Inc 表示装置、表示方法および制御プログラム
JP2007208529A (ja) * 2006-01-31 2007-08-16 Canon Inc 表示制御装置、表示制御方法および制御プログラム
US20070268311A1 (en) * 2006-05-22 2007-11-22 Smith Stephen M Overlapping mekko charts
US8484554B2 (en) * 2006-08-31 2013-07-09 Sap Ag Producing a chart
US7975234B2 (en) * 2006-10-11 2011-07-05 Microsoft Corporation Graphical acquisition of an objective function
US20090118998A1 (en) * 2007-11-07 2009-05-07 Flightview Inc. Flight Tracking Display Systems and Methods
DE112008003854T5 (de) 2008-05-06 2011-06-22 Hewlett-Packard Development Company, L.P., Tex. Raum-Zeit-Medienobjektlayouts
US20100031152A1 (en) * 2008-07-31 2010-02-04 Microsoft Corporation Creation and Navigation of Infinite Canvas Presentation
US8108777B2 (en) 2008-08-11 2012-01-31 Microsoft Corporation Sections of a presentation having user-definable properties
US10127524B2 (en) 2009-05-26 2018-11-13 Microsoft Technology Licensing, Llc Shared collaboration canvas
US20100306018A1 (en) * 2009-05-27 2010-12-02 Microsoft Corporation Meeting State Recall
US8572084B2 (en) 2009-07-28 2013-10-29 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via nearest neighbor
WO2011028553A1 (en) 2009-08-24 2011-03-10 Fti Technology Llc Generating a reference set for use during document review
US8473842B2 (en) 2010-05-12 2013-06-25 Microsoft Corporation Contour based flow layout
US9118612B2 (en) 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9383888B2 (en) 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US9544158B2 (en) 2011-10-05 2017-01-10 Microsoft Technology Licensing, Llc Workspace collaboration via a wall-type computing device
US9996241B2 (en) 2011-10-11 2018-06-12 Microsoft Technology Licensing, Llc Interactive visualization of multiple software functionality content items
US10198485B2 (en) 2011-10-13 2019-02-05 Microsoft Technology Licensing, Llc Authoring of data visualizations and maps
US9135233B2 (en) 2011-10-13 2015-09-15 Microsoft Technology Licensing, Llc Suggesting alternate data mappings for charts
US10061473B2 (en) 2011-11-10 2018-08-28 Microsoft Technology Licensing, Llc Providing contextual on-object control launchers and controls
US9633110B2 (en) 2011-11-15 2017-04-25 Microsoft Technology Licensing, Llc Enrichment of data using a semantic auto-discovery of reference and visual data
US8793567B2 (en) 2011-11-16 2014-07-29 Microsoft Corporation Automated suggested summarizations of data
US9772682B1 (en) 2012-11-21 2017-09-26 Open Text Corporation Method and system for dynamic selection of application dialog layout design
JP6089758B2 (ja) * 2013-02-18 2017-03-08 株式会社大林組 情報描画装置、およびプログラム
US9142046B2 (en) 2013-06-06 2015-09-22 International Business Machines Corporation Effective arrangement of data elements
US9213474B2 (en) * 2013-06-21 2015-12-15 Baker Hughes Incorporated System and method for displaying well data
US10482635B2 (en) * 2014-09-29 2019-11-19 Adp, Llc Chart labeling system
WO2016144963A1 (en) * 2015-03-10 2016-09-15 Asymmetrica Labs Inc. Systems and methods for asymmetrical formatting of word spaces according to the uncertainty between words
US10198412B2 (en) * 2016-03-09 2019-02-05 Autodesk, Inc. Simulated annealing to place annotations in a drawing
WO2017210618A1 (en) 2016-06-02 2017-12-07 Fti Consulting, Inc. Analyzing clusters of coded documents
US11074726B2 (en) * 2017-03-09 2021-07-27 Apple Inc. Techniques for automatically mitigating overlapping labels associated with pie charts
US10825214B2 (en) 2017-10-30 2020-11-03 Microsoft Technology Licensing, Llc Priority based automatic placement of labels on charts
WO2021084667A1 (ja) * 2019-10-30 2021-05-06 日本電信電話株式会社 可視化データへの付箋の付与及び復元
US11295075B2 (en) * 2019-12-31 2022-04-05 Microsoft Technology Licensing, Llc Automatic generation of alternative content layouts
KR102299879B1 (ko) * 2020-12-31 2021-09-09 렉스소프트 주식회사 도식에서의 그래프의 자동 배치 및 맞춤을 위한 방법 및 컴퓨터 판독가능매체

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108834A (ja) * 1991-10-15 1993-04-30 Nec Corp グラフの文字列・引出し線作図方式
US5684940A (en) * 1995-03-13 1997-11-04 Rutgers, The States University Of New Jersey Computer-implemented method and apparatus for automatically labeling area regions of maps using two-step label placing procedure and for curved labeling of point features
JPH0991446A (ja) * 1995-09-27 1997-04-04 Kobe Nippon Denki Software Kk グラフ生成装置
US6154219A (en) * 1997-12-01 2000-11-28 Microsoft Corporation System and method for optimally placing labels on a map
AU2001238354A1 (en) * 2000-02-18 2001-08-27 The University Of Maryland Methods for the electronic annotation, retrieval, and use of electronic images
US7131060B1 (en) * 2000-09-29 2006-10-31 Raytheon Company System and method for automatic placement of labels for interactive graphics applications
US7425968B2 (en) * 2003-06-16 2008-09-16 Gelber Theodore J System and method for labeling maps
US7599790B2 (en) * 2004-03-23 2009-10-06 Google Inc. Generating and serving tiles in a digital mapping system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426368A (zh) * 2014-09-03 2016-03-23 腾讯科技(北京)有限公司 信息显示方法、装置及电子设备
CN105426368B (zh) * 2014-09-03 2020-07-07 腾讯科技(北京)有限公司 信息显示方法、装置及电子设备
CN106372230A (zh) * 2016-09-09 2017-02-01 天津海量信息技术股份有限公司 一种图表标签统计方法及装置
CN107544950A (zh) * 2017-07-26 2018-01-05 阿里巴巴集团控股有限公司 添加标签的方法及装置

Also Published As

Publication number Publication date
US20060082594A1 (en) 2006-04-20
KR20060049709A (ko) 2006-05-19
EP1647896A3 (en) 2008-08-06
JP2006114013A (ja) 2006-04-27
US7292244B2 (en) 2007-11-06
EP1647896A2 (en) 2006-04-19
KR101159325B1 (ko) 2012-06-22
CN1763743B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
CN1763743A (zh) 图表上的自动标签放置系统和方法
CN1126025C (zh) 窗口显示装置
CN1749958A (zh) 使用形状的公用图表
CN1259622C (zh) 对排列在信元中的信息进行显示的装置
CN1293457C (zh) 处理信息的设备和方法
CN1912825A (zh) 信息处理装置及其控制方法
CN1811691A (zh) 信息处理装置及其控制方法
CN1731399A (zh) 信息处理装置及其控制方法
CN1744036A (zh) 报告软件中支持定制图形表示的系统和方法
CN101046883A (zh) 图形绘制设备
CN1813252A (zh) 信息处理方法、信息处理程序、信息处理装置及摇控器
CN1530855A (zh) 布局系统和布局程序以及布局方法
CN1271564C (zh) 信号处理设备
CN1510593A (zh) 编排系统、编排程序和编排方法
CN1731397A (zh) 信息处理装置及其控制方法
CN1501285A (zh) 排版系统、排版程序和排版方法
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1897556A (zh) 信息处理设备、信息处理方法和信息处理程序
CN1828516A (zh) 布局控制装置和布局控制方法
CN1290889A (zh) 程序对象的串行化和解串行的版本适应
CN1265276C (zh) 用于显示信息的方法
CN1752963A (zh) 文档信息处理设备、文档信息处理方法及处理程序
CN1648846A (zh) 文件处理装置和文件处理方法
CN1910577A (zh) 图像文件一览显示装置
CN1530856A (zh) 布局系统和布局程序以及布局方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.