KR101159325B1 - 차트 상의 자동 라벨 배치를 위한 시스템 및 방법 - Google Patents

차트 상의 자동 라벨 배치를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101159325B1
KR101159325B1 KR1020050058232A KR20050058232A KR101159325B1 KR 101159325 B1 KR101159325 B1 KR 101159325B1 KR 1020050058232 A KR1020050058232 A KR 1020050058232A KR 20050058232 A KR20050058232 A KR 20050058232A KR 101159325 B1 KR101159325 B1 KR 101159325B1
Authority
KR
South Korea
Prior art keywords
layout
labels
score
chart
determining
Prior art date
Application number
KR1020050058232A
Other languages
English (en)
Other versions
KR20060049709A (ko
Inventor
밀티아디스 바피아디스
마니시 아그라왈라
아담 클라이드 에버솔
다니엘 필립 코리
Original Assignee
마이크로소프트 코포레이션
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 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060049709A publication Critical patent/KR20060049709A/ko
Application granted granted Critical
Publication of KR101159325B1 publication Critical patent/KR101159325B1/ko

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)
  • Preparing Plates And Mask In Photomechanical Process (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

차트와 같은 시각적 데이터 객체와 관련된 라벨들의 레이아웃을 최적화하기 위한 알고리즘이 제공된다. 라벨들은 먼저 라벨들을 형상으로서 정의하는 차트 정의 파일 내에 배치된다. 라벨들의 초기 레이아웃이 생성되고 스코어링된다. 그 후 최적의 스코어에 가장 가까운 스코어를 갖는 레이아웃에 대응하는 라벨들의 최적의 레이아웃이 획득될 때까지 반복적으로 형상들이 조작된다. 그 후 최적의 레이아웃은 스크린 상에 시각적 데이터 객체를 렌더링하는 데 이용된다.
차트, 라벨, 시각적 데이터 객체(visual data object), 레이아웃, 최적화

Description

차트 상의 자동 라벨 배치를 위한 시스템 및 방법{SYSTEM AND METHOD FOR AUTOMATIC LABEL PLACEMENT ON CHARTS}
도 1은 본 발명의 일 실시예에서 사용될 수 있는 컴퓨팅 장치의 예를 예시한다.
도 2는 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 파이 차트의 예시적인 뷰를 예시한다.
도 3은 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 버블 차트의 예시적인 뷰를 예시한다.
도 4는 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 타임라인 차트의 예시적인 뷰를 예시한다.
도 5는 본 발명에 따라서 차트 생성 및 라벨 위치 최적화를 수행하기 위한 예시적인 차팅 시스템(500)을 예시한다.
도 6은 본 발명에 따라서 라벨들의 최적 레이아웃에 대응하는 시각적 데이터 객체의 레이아웃을 결정하기 위한 의사 코드의 예를 예시한다.
<도면의 주요 부분에 대한 부호의 설명>
502 : 애플리케이션 프로그램
504 : 문서
512 : 차트 객체
514 : 다른 문서 객체
506 : 그래픽 모듈
516 : 그래픽 인터페이스
524 : 그래픽 서비스
526 : 라벨 최적화
522 : 형상 기반 차트 정의
518 : 차팅 모듈
520 : 변환 엔진
본 발명은 2004년 9월 15일 출원된, "Common Charting Using Shapes"라는 제명의 일련 번호 10/941,566의 특허 출원과 관련이 있다. 이 관련 출원은 본 특허 출원의 양수인에게 양도되었고 이로써 참고로 통합된다.
차트는 수치 데이터의 그래픽적인 표현이다. 차트는 특히 복잡한 데이터를 간결하고 용이하게 이해가능한 형태로 프리젠테이션하는 데 유용하다. 오늘날의 데스크탑 출판 환경에서, 사용자는 차트를 사용하여 인상적인 프리젠테이션을 생성할 수 있다. 차트들은 마이크로소프트사의 "엑셀"과 같은 애플리케이션 프로그램에 입력되는 기본 데이터에 기초한다. 그 후 기본 데이터를 사용하여, 파이차트 (pie-chart), 바차트(bar-chart), 히스토그램(histogram), 라인 차트(line chart) 등의 다수의 상이한 포맷으로 데이터의 차트를 생성할 수 있다. 추가적으로, 차트의 각 부분은 관련 컬러, 텍스처 및 다른 효과들을 갖고서, 정보를 전달하는 데 매우 중요한 차트의 외양을 개선시킬 수 있다.
차트에 포함된 라벨들은 차트의 시각적 기능 및 프리젠테이션에 기여한다. 만일 사용자가 자동화 데이터 라벨 기능을 작동시키면 적지 않은(more than a few) 포인트들을 갖는 차트는 판독하기 어렵게 된다. 일반적으로, 이전에 제공된 자동화 차트 라벨링 알고리즘은 차트 영역을 사용하도록 최적화되지 않은 라벨들의 배치 및 중첩 텍스트를 초래한다. 따라서, 대체 방법이 요구된다.
본 발명의 실시예들은 차트 및 그래프 상의 라벨의 배치를 최적화함으로써 위에서 언급한 취약점을 해결하는 시스템 및 방법에 관한 것이다. 라벨의 최적화는 일단의 제약들에 기초하여 라벨들의 특정 위치 지정을 스코어링(score)하는 알고리즘에 따라서 제공된다. 라벨들의 현재 위치 지정이 지정된 제약들과 잘 부합될수록, 차트에 대한 스코어는 더 나아진다. 그 알고리즘은 함수를 여러 번 호출함으로써 스코어를 최소화하려고 하고, 함수는 호출될 때마다 단일 라벨을 다시 위치 지정한다. 본 발명의 일 구현에서, 수동으로 위치 지정된 라벨들은 최적화 프로세스 동안 고려에서 면제된다.
본 발명의 일 양태에서, 최적화 프로세서의 함수들은 차트 또는 그래프의 라벨들 및 앵커들에 대해 작용하는 목표 함수(objective function), 또는 스코어 함 수, 및 섭동 함수(perturbation function)에 따라서 정의된다. 앵커(anchor)는 파이 차트의 특정 슬라이스, 버블 차트의 버블, 또는 사용되는 차트에 따른 다른 엘리먼트(elements)를 가리킨다. 목표 함수는 그에 의해 차트가 스코어될 수 있는 최적화의 목표(goal)를 정의하는 함수를 가리킨다. 예를 들면, 목표 함수는 라벨들의 중첩(overlap)을 최소화하는 것과, 다른 앵커의 에지로부터의 거리를 최소화하는 것과, 라벨들의 위치를 최적화하기 위한 다른 목표들, 및 이들 목표들의 가능한 조합에 대응할 수 있다. 섭동 함수는 차트 상의 라벨들의 조정을 위한 제한들을 정의하는 함수를 가리킨다. 예를 들면, 섭동 함수는 라벨을 재배치하기 위한 범위 제한, 라벨들에 관하여 행해질 수 있는 변경 타입들의 제한된 서브세트, 및 다른 제한들을 정의할 수 있다.
이하에서 본 발명에 대하여 첨부 도면들을 참조하여 보다 상세히 설명하겠다. 첨부 도면들은 본 발명의 일부를 형성하고, 예시로서, 본 발명을 실시하기 위한 특정 실시예들을 도시한다. 그러나, 본 발명은 많은 다른 형태들로 구현될 수 있고 여기에서 제시된 실시예들에 한정되는 것으로 해석되어서는 안 되고, 오히려, 이들 실시예를 제공하는 것은 이 개시 내용을 완벽하게 하고 발명의 범위를 숙련된 당업자들에게 충분히 전달하기 위함이다. 많은 가운데서 특히, 본 발명은 방법 또는 장치로 구현될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 실시예, 전적으로 소프트웨어의 실시예 또는 소프트웨어와 하드웨어 양태들을 조합한 실시예의 형태를 취할 수 있다. 따라서, 이하의 상세한 설명은 제한적인 의미로 해석되어서는 안 될 것이다.
예시적인 컴퓨팅 장치
도 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, 적외선, 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정된 것은 아니다. 여기에서 사용된 컴퓨터 판독 가능 매체라는 용어는 기억 매체 및 통신 매체 양자를 포함한다.
자동 라벨 배치를 최적화하기 위한 예시적인 실시예
여기에서 사용될 때, "차트" 및 "시각적 데이터 객체"(visual data object)라는 용어는 교환 가능하게 사용되어 파이 차트, 버블 차트, 라인 차트, 타임라인, 라인 그래프, 바 그래프, 사진, 디지털 이미지, 및 관련 라벨들을 가질 수 있는 다른 객체들과 같은 각종 시각적 객체들을 기술하는 데 사용된다.
본 발명의 실시예들은 차트 상의 라벨들의 위치를 최적화하기 위한 알고리즘을 이용하는 것과 관련된다. 본 발명은 가능한 레이아웃들의 세트로부터 라벨들의 최적의 레이아웃을 탐색하기 위해 함수를 이용한다. 레이아웃 문제를 탐색으로 구체화하기 위하여 본 발명은 초기 레이아웃 및 2개의 함수, 즉 평가 기준에 기초하여 레이아웃의 품질을 평가하는 목표 함수와, 주어진 레이아웃을 조작하여 탐색 범위 내에 새로운 레이아웃을 생성하는 섭동 함수를 정의한다. 스코어 및 섭동 함수들 양쪽 모두는 레이아웃에 대한 제약들의 세트로 정의된다. 이들 2개의 함수가 주어지면 최적의 레이아웃을 결정하기 위한 탐색이 수행될 수 있다. 일 실시예에서는, 모의 어닐링 방법(simulated annealing method)을 최적의 레이아웃을 결정하기 위한 무작위화 탐색 알고리즘(randomized search algorithm)으로서 이용한다.
제약들은 2개의 세트, 즉 하드 제약(hard constraints) 및 소프트 제약(soft constraints)으로 나누어진다. 하드 제약들은 임의의 수용 가능한 레이아웃에 요 구되는 특성들로 이루어지고 따라서 하드 제약들은 가능한 레이아웃들의 공간을 경계 짓는다. 그와 대조적으로, 소프트 제약들은 최종 레이아웃에서 소망되지만 요구되지는 않는 특성들로 이루어진다. 하드 제약들은 전형적으로 하드 제약들을 만족시키는 레이아웃들만을 생성하도록 설계된 섭동 함수를 통하여 가해진다. 스코어 함수는 주어진 레이아웃이 소프트웨어 제약들을 얼마나 잘 성취하는지를 체크한다.
알고리즘을 이용하여, 차트 영역 내의 라벨들의 위치를 최적화함과 함께 자동으로 차트에 라벨들을 포퓰레이트(populate)하기 위해 데이터의 세트가 이용될 수 있다.
도 2는 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 파이 차트의 예시적인 뷰를 예시한다.
뷰(210)는 파이 차트 상의 라벨들이 파이 차트에 포함된 데이터 포인트들의 수로 인해 중첩하는 것을 예시한다. 중첩하는 텍스트로 인해 모든 라벨들과 파이 차트의 엘리먼트들과의 그들의 관련을 시각적으로 분별하기가 어려워진다.
뷰(220)은 본 발명의 최적화 알고리즘을 실행함으로써 라벨링이 향상된 파이 차트를 보여준다. 차트 공간 내에서의 라벨들의 위치를 최적화함으로써 파이 차트의 읽힘성(readability)이 상당히 향상된다. 알고리즘은 특정 라벨들을 그들과 관련이 있는 앵커들(슬라이스들)로부터 멀리 이동시킨 반면, 다른 것들은 보다 가깝게 이동시켰고 심지어는 그들의 앵커 내에 중심 배치하거나 부분적으로 중심 배치하였다. 다른 라벨들에 대해서는 그 라벨과 그들의 관련 앵커들을 시각적으로 연 결하기 위해 리드 선을 부가하였다. 뷰(220)는 알고리즘이 차트의 라벨들에 대한 최적의 레이아웃을 제공하기 위해 다양한 방법들을 이용하는 것을 예시한다.
도 3은 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 버블 차트의 예시적인 뷰를 예시한다.
뷰(310)는 버블 차트 상의 라벨들의 관련 앵커들을 결정하는 것이 가능하지 않도록 라벨들이 위치 지정될 수 있음을 예시한다. 더욱이, 라벨들의 텍스트는 버블 에지들과 중첩하여, 차트 내의 버블들을 최적으로 볼 수 있도록 배치되지 않을 수 있다
뷰(320)는 본 발명의 최적화 알고리즘을 실행함으로써 라벨링이 향상된 버블 차트이다. 알고리즘은 특정 라벨들을 그들과 관련이 있는 앵커들(버블들)로부터 멀리 이동시킨 반면, 다른 것들은 보다 가깝게 이동시켰고 심지어는 그들의 앵커 내에 중심 배치하거나 부분적으로 중심 배치하였다. 다른 라벨들에 대해서는 그 라벨과 그들의 관련 앵커들을 시각적으로 연결하기 위해 리드 선을 부가하는 한편 그 라벨을 관련 앵커로부터 거리를 두고 이동시켰다. 뷰(320)는 알고리즘이 파이 차트에 대해 이용된 다양한 방법들과 유사하게 버블 차트의 라벨들에 대한 최적의 레이아웃을 제공하기 위해 다양한 방법들을 이용하는 것을 예시한다.
도 4는 본 발명에 따라서 라벨 위치 최적화 전후의 자동 라벨링에 의한 타임라인 차트의 예시적인 뷰를 예시한다.
뷰(410)는 타임라인 차트 상의 라벨들이 제공된 공간에 포함된 데이터 포인트들의 수로 인해 중첩하는 것을 예시한다. 더욱이, 본 발명의 이점이 없는 자동 화 라벨링 알고리즘은 타임라인 상의 데이터 포인트들로부터의 텍스트의 간격을 변경할 정도로 충분히 지능적이지 않다.
뷰(420)는 본 발명의 최적화 알고리즘을 실행함으로써 라벨링이 향상된 타임라인 차트이다. 차트 공간 내에서의 라벨들의 위치를 최적화함으로써 타임라인 차트의 읽힘성이 상당히 향상된다. 알고리즘은 차트 공간의 이용을 최적화하기 위하여 텍스트 포맷을 변경하였고 라벨들을 차트 공간의 도처에 이동시켰다. 뷰(320)는 알고리즘이 위에 제공된 파이 차트 및 버블 차트에 대해 이용된 다양한 방법들과 유사하게 타임라인 차트의 라벨들에 대한 최적의 레이아웃을 제공하기 위해 다양한 방법들을 이용하는 것을 예시한다.
도 2-4에 도시된 실시예들과 다른 실시예들이 본 발명에 따라서 제공될 수 있다. 예를 들면, 본 발명은 라인 그래프 상에서, 사진 내에서, 또는 다른 시각적 데이터 객체들과 관련하여, 라벨들의 위치를 최적화하기 위해 사용될 수 있다.
도 5는 본 발명에 따라서 차트 생성 및 라벨 배치의 최적화를 수행하기 위한 예시적인 차팅 시스템(500)을 예시한다. 시스템(500)에는 문서(504)에의 액세스를 제공하는 애플리케이션 프로그램(502) 및 컴퓨터 모니터 스크린 상에 문서(504)를 렌더링하기 위한 그래픽 모듈(506)이 포함된다.
여기에 사용된 바와 같이, 문서(504)는 텍스트 및 그래픽과 같은 사용자 판독 가능 정보를 포함하는 컴퓨터 판독 가능 파일이다. 사용자는 애플리케이션 프로그램(502)의 사용자 인터페이스를 통해 문서(504)를 관찰 및 편집할 수 있다. 문서의 예시적인 유형들은 스프레드시트, 프리젠테이션 또는 통상적인 텍스트 문서 를 포함하지만, 이에 한정된 것은 아니다. 그러므로, 문서의 유형에 따라, 애플리케이션 프로그램(502)은, 예를 들어, 마이크로소프트 "워드", "파워포인트", "엑셀" 또는 다른 애플리케이션 프로그램일 수 있지만, 이에 한정된 것은 아니다. 예를 들어, 스크린(508) 상에 도시된 바와 같이, 문서(504)는 종종 "파워포인트"와 관련된 '프리젠테이션'이지만, 항상 그런 것은 아니다.
프리젠테이션 내의 차트(510)가 본 설명에 특히 관련되어 있다. 도 5의 특정 구현에 도시된 차트(510)는 컬럼 차트(column chart)이다. 다른 구현에 따르면, 차트(510)는 컬럼 차트에 한정되지 않고, 파이 차트, 라인 차트 또는 스캐터 플롯(scatter plot), 사진, 또는 다른 시각적 데이터 객체와 같은 임의의 다른 유형의 차트일 수 있지만, 이에 한정된 것은 아니다. 차트(510)의 다양한 데이터는 본래 문서(504)가 특정한다. 문서(504)는 차트 객체(512)라 불리는 차트 정의로 차트(510)를 특정한다.
차트 객체(512)는 차트 엘리먼트들로 차트(510)를 정의한다. 일반적으로, 차트 엘리먼트는 차트의 양태를 표현하는 데이터 유닛이다. 전형적으로 차트 엘리먼트는 차트가 전달하는 정보 또는 차트의 유형에 관련하여 차트의 양태를 표현한다. 예시적인 차트 엘리먼트들은 바(예를 들어, 바 차트에 대해서), 차트 축, 차트 범례(chart legends), 차트 타이틀, 차트 라벨, 엘리먼트 컬러, 텍스트 폰트, 엘리먼트 위치, 데이터 소스(data sources) 등을 포함한다. 차트 엘리먼트들은 라벨과 관련하여 앵커(anchors)로 불릴 수 있다. 차트 객체(512)의 일 구현은 확장성 생성 언어(XML)의 세트이다. 예시하기 위해, 차트 객체(512)로부터의 XML 코드 의 예가 다음에 제시되어 있다:
Figure 112005035544505-pat00001
Figure 112005035544505-pat00002
Figure 112005035544505-pat00003
Figure 112005035544505-pat00004
문서(504)는 전형적으로 텍스트 및 포맷팅 정보를 포함하지만, 이에 한정되지 않은, 다른 문서 데이터(514)도 갖는다. 일 구현에 따르면, 애플리케이션 프로그램(502)이 개시(launch)되고 문서(504)가 열리면, 차트 객체(512)가 공통 그래픽 모듈(506)의 그래픽 인터페이스(516)로 전달되어 렌더링된다.
그래픽 인터페이스(516)는 차트 객체(512)에 의해 표현되는 그래픽의 유형을 결정한다. 그래픽 인터페이스(516)가 핸들링할 수 있는 그래픽의 유형들은 다이어그램, 차트 또는 임의 형상들을 포함하지만, 이에 한정된 것은 아니다. 차트 객체(512)는 그것이 차트를 정의함을 나타내는 식별자를 포함한다. 차트 식별자에 기초하여, 그래픽 인터페이스(516)는 차트 객체(512)가 차트를 정의한다고 결정하고, 그것을 차팅 모듈(518)에게 송신한다.
차팅 모듈(518)은 차트 객체(512)를 그래픽 모듈(506)이 스크린(108)에 차트(510)를 렌더링하는 데 사용하는 형태로 변환하는 변환 엔진(520)을 포함한다. 특 히, 변환 엔진(520)은 차트 객체(512)를 형상 기반 차트 정의(522)로 변환한다. 그것의 이름이 시사하는 바와 같이, 형상 기반 차트 정의(522)는 차트 엘리먼트들보다는 형상들로 차트를 정의한다. 형상을 사용하면, 메커니즘이 그래픽들과 상호작용할 수 있게 하여, 차트 렌더링 프로세스, 차트 외형 및 차트 조작을 개선시킬 수 있다.
변환 프로세스에서, 변환 엔진(520)은 다수의 동작들을 수행한다. 예를 들어, 변환 엔진(520)은 차트 객체(512)에서 참조된 데이터 소스(들)로부터 차트(510)를 생성하는 데이터(예를 들어, 수치 데이터)를 검색(retrieve)한다. 데이터 소스(들)는 문서(504) 자체이거나, 또 다른 문서, 데이터베이스, 파일, 인터넷 또는 큐(queue)와 같은 몇몇 다른 소스일 수 있지만, 이에 한정된 것은 아니다. 데이터 이외에, 변환 엔진(520)은 데이터를 어떻게 포맷팅할지를 설명하는 수치 포맷팅 정보를 검색할 수 있다. 수치 포맷팅 정보는 통화 기호(currency symbol), 십진 소수점의 수(number of decimal points), 퍼센트 또는 소수부(fraction) 포맷, 또는 날짜 및 시간 포맷을 포함하지만, 이에 한정된 것은 아니다.
변환 엔진(520)은 또한 차트 엘리먼트들을 라인, 사각형, 원, 삼각형 등의 형상으로 변환한다. 형상은 차트 엘리먼트의 시각적 외형을 단순하게 표현한 데이터 유닛이지만, 기본 수치 차트 데이터에 묶이거나 의지하지 않는다. 그러므로, 예를 들어, 차트 객체(512)의 바는 형상 기반 차트 정의(522)의 사각형으로 변환될 것이며, 차트 축은 선으로 변형될 것이다.
추가적으로, 변환 엔진(520)은 선택된 관련 형상들을 그룹화하여, 사용자가 관련 형상들을 용이하게 조작하도록 한다. 그래픽 인터페이스(516)는 사용자가 관련 형상들의 그룹과 상호작용하게 하는 함수들을 제공한다. 변환 엔진(520)은 이에 한정되지는 않지만, 관련 데이터 라벨들 및 관련 데이터 시리즈와 같은, 관련 차트 엘리먼트들을 그룹화함으로써 그러한 함수들의 이점을 취할 수 있다. 데이터를 검색하고, 차트 엘리먼트들을 형상들로 변환하고, 관련 형상들을 그룹화한 후, 변환 엔진(520)은 형상 기반 차트 정의(522)를 생성한다.
형상 기반 차트 정의(522)의 일 구현은 XML 코드로 구성된다. 예시하기 위해, 예시적인 형상 기반 차트 정의(522)로부터의 XML 코드가 다음에 제시된다:
Figure 112005035544505-pat00005
Figure 112005035544505-pat00006
Figure 112005035544505-pat00007
Figure 112005035544505-pat00008
Figure 112005035544505-pat00009
Figure 112005035544505-pat00010
Figure 112005035544505-pat00011
Figure 112005035544505-pat00012
그래픽 인터페이스(516)는 형상 기반 차트 정의(522)를 수신하고, 형상 기반 차트 정의가 특정하는 형상들의 세트로서 차트(510)를 스크린(508) 상에 렌더링한다. 그래픽 인터페이스(516)는 전형적으로 오퍼레이팅 시스템 또는 디스플레이 제어기 함수에의 호출을 행하여 렌더링을 수행한다. 예를 들어, 윈도우즈 오퍼레이팅 시스템에서, 그래픽 인터페이스(516)는 그래픽 디스플레이 인터페이스(GDI+)에의 호출을 행할 수 있다.
도시된 바와 같이, 그래픽 모듈(506)은 그래픽 서비스(524)들의 세트를 포함한다. 그래픽 서비스(524)들은 차트(510)를 조작하기 위해 애플리케이션 프로그램이 액세스할 수 있는 서비스들을 포함한다. 그래픽 서비스(524)들은 서비스에 액세스하기 위한 하나 이상의 애플리케이션 프로그래밍 인터페이스(들)(API)를 제공한다.
그래픽 모듈(506)이 형상들을 렌더링하기 때문에, 그래픽 서비스(524)는 차트(510)를 조작하기 위한 고레벨 함수들을 제공할 수 있다. 그래픽 서비스(524)는, 예를 들어, 차트 내의 형상들 상에서 백터 그래픽 함수들을 수행할 수 있다. 예시하기 위해, 사각형을 새로운 위치에 다시 그리기 위해 다수의 저레벨 함수들을 호출하기보다는 형상을 이동시키는 그래픽 서비스(524)의 단일 함수를 호출하여, 사각형을 용이하게 이동시킬 수 있다. 추가적으로, 그래픽 모듈(506)은 다수의 애플리케이션 프로그램들에게 공통적이므로, 형상 조작/편집 및 외형은 애플리케이션 프로그램들 사이에서 일관적일 것이다. 그러므로, 그래픽 모듈(506)은 애플리케이션 프로그램(502)의 유형에 상관없이 차트(510) 내의 형상들을 편집하기 위한 그래픽 사용자 인터페이스를 제시할 수 있다.
라벨 최적화(526)는 시스템(500) 내의 본 발명에 관한 코드이다. 라벨 최적화(526)는 형상 기반 차트 정의(522)를 수신하여 최적화 알고리즘에 따라서 라벨들의 위치를 최적화한다. 전술한 바와 같이, 형상 기반 차트 정의(522)는 라벨들이 쉽게 이동하게 한다. 왜냐하면 그것들은 라벨들을 다시 그릴 것을 요구할 다른 저레벨 함수들에 의해서보다는 그들의 형상에 의해 정의되기 때문이다. 라벨 최적화(526)는 레벨들의 위치 지정을 최적화하기 위하여 차트(512)가 스크린(508) 상에 렌더링되기 전이나 후에 이용될 수 있다. 예를 들어, 최적화 알고리즘에 다른 라벨들의 위치 지정은 렌더링되는 모든 차트마다 자동적일 수 있다. 그와 대조적으로, 라벨들의 최적화는 사용자 선택에 따라서 제공될 수 있고, 여기서 사용자는 라벨들이 최적화되도록 긍정적으로 선택한다. 일 실시예에서, 사용자에 의해 수동으로 위치 지정되는 라벨들은 최적화 프로세스 중에 무시된다.
모듈이라는 용어는 일반적인 의미로 사용되어, 하나 이상의 지정된 함수들을 수행하기 위해 동작가능한 컴포넌트를 설명한다. 모듈은 다양한 방식 및 형태들로 구현될 수 있다. 예를 들어, 모듈은 속도, 비용, 크기 등의 요인들에 따라 하드웨어, 소프트웨어, 펌웨어, 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 다양한 조합들 내에 또는 그것들로 구현될 수 있다. 예를 들어, 일 구현에서, 시스템(100) 내의 각각의 모듈들은 동적 링크 라이브러리(DLL)와 같은, 컴퓨터 판독가능 매체 상에 저장되고 도 1과 관련해 위에서 설명한 컴퓨팅 시스템과 같은 컴퓨팅 시스템 상에서 실행되는 소프트웨어를 포함하지만, 이에 한정된 것은 아니다.
도 6은 본 발명에 따라서 라벨들의 최적 레이아웃에 대응하는 시각적 데이터 객체(visual data object)의 레이아웃을 결정하기 위한 의사 코드의 예를 예시한다.
예시적인 알고리즘(600)을 구현하는 데에는 상이한 함수들의 명세가 요구된다. InitializeLayout() 함수는 시각적 엘리먼트(visual element)들 각각에 대한 초기 배치를 정의하고 그에 의해 탐색을 위한 시작점을 제공한다. PerturbLayout() 함수는 앞에서 설명한 섭동 함수에 대응하고 주어진 레이아웃을 새로운 레이아웃으로 변경하는 방법을 제공한다. RevertLayout() 함수는 새로운 레이아웃으로부터 이전의 레이아웃으로 돌아가도록 PerturbLayout()의 액션들을 반전시킨다. Random() 함수는 0.0과 1.0 사이의 수를 반환한다. 마지막으로, 앞에서 설명한 목표 함수에 대응하는 ScoreLayout() 함수는 현재의 레이아웃이 최적에 얼마나 근접하는지를 계산한다. 일 실시예에서, 종료 조건은 사용 가능한 레이아웃을 성취하기 위한 시간 한계, 레이아웃의 최적에의 근접도, 및 다른 요인들에 따라서 변할 수 있다. 다른 실시예에서, 스코어는 양(positive)인 것으로 정의되고 스코어가 낮을수록 레이아웃은 좋아진다. 따라서, 목표는 사용되는 제약들에 따라서 스코어를 최소화하는 것이다. 사용될 레이아웃에 대해 수용 가능한 스코어는 알고리즘의 종료 조건에 따라 다르다.
의사 코드에서 도시된 바와 같이, 알고리즘은 탐색 공간 내의 모든 양호한 움직임들을 수용하고, 온도 T의 지수 함수인 확률(probability)을 이용하여, 일부 불량한 움직임들도 수용한다. 알고리즘이 진행됨에 따라서, T는 어닐링되고(또는 감소하고), 그 결과 불량한 움직임들을 수용하는 확률이 감소하게 된다. 이런 식 으로 불량 움직임들을 수용함으로써 알고리즘이 스코어 함수에서 국부적 극소치들(local minima)을 탈피할 수 있게 된다.
라벨들의 최적의 레이아웃을 제공하기 위해 정의된 제약들은 앵커로부터의 거리를 최소화하는 것과, 라벨들의 중첩을 최소화하는 것과, 엘리먼트들과의 중첩을 최소화하는 것과, 폰트 제한(font restrictions), 방향 제한(orientation restrictions), 및 라벨이 어떻게 조작될 수 있는지에 영향을 미치는 다른 제한들과 같은 제약들을 포함할 수 있다. 뷰 가능한 공간에 대한 라벨들의 위치를 최적화하도록 라벨들을 조작하기 위해 임의 개수의 제약들이 알고리즘에 공급될 수 있다.
상기 명세, 예들 및 데이터는 발명의 구성의 제조 및 이용에 대한 완전한 설명을 제공한다. 발명의 정신 및 범위를 벗어나지 않고 발명의 다수의 구현이 이루어질 수 있으므로, 발명은 이하에 첨부된 청구항들에 귀속된다.
본 발명에 따르면, 차트와 같은 시각적 데이터 객체와 관련된 라벨들의 레이아웃을 최적화하기 위한 알고리즘이 제공된다.

Claims (22)

  1. 시각적 데이터 객체(visual data object)와 관련된 라벨들을 자동으로 위치 지정하기 위한 컴퓨터 구현 방법으로서,
    상기 라벨들에 대한 제1 레이아웃을 결정하는 단계;
    상기 제1 레이아웃을 스코어링(scoring)하여 제1 스코어를 결정하는 단계 - 상기 제1 스코어는 상기 제1 레이아웃 내의 상기 라벨들 각각에 대한 통합(combined) 스코어를 나타내고, 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 단계는 목표 함수(objective function)를 실행하는 단계를 더 포함하고, 상기 목표 함수는 상기 제1 레이아웃이 스코어링되는 목표(goal)를 제공하고, 상기 목표는 상기 라벨들의 중첩을 최소화하는 것 또는 상기 라벨들로부터 차트 내의 그들의 관련 앵커들까지의 거리를 최소화하는 것에 대응함 - ;
    상기 라벨들에 대한 제2 레이아웃을 결정하는 단계 - 상기 제2 레이아웃은 상기 제1 레이아웃과는 상이하고, 상기 라벨들에 대한 제2 레이아웃을 결정하는 단계는 섭동 함수(perturb function)를 실행하는 단계를 더 포함하고, 상기 섭동 함수는 제약들(constraints)의 세트에 따라 상기 제1 레이아웃을 변경하며, 상기 섭동 함수는 차트 내에 포함된 단일 라벨의 양태(aspect)를 조정하는 것에 대응함 - ;
    상기 제2 레이아웃을 스코어링하여 제2 스코어를 결정하는 단계 - 상기 제2 스코어는 상기 제2 레이아웃 내의 상기 라벨들 각각에 대한 통합 스코어를 나타냄 - ;
    상기 제1 스코어와 상기 제2 스코어를 비교하는 단계;
    상기 제1 스코어와 상기 제2 스코어의 비교에 따라 상기 시각적 데이터 객체를 렌더링하기 위해 선택된 레이아웃으로서 상기 제1 레이아웃과 상기 제2 레이아웃 중 하나로 진행하는 단계;
    상기 라벨들에 대한 부가적인 레이아웃을 결정하는 단계와 상기 부가적인 레이아웃을 스코어링하는 단계를 최적의 레이아웃에 근접하는 레이아웃이 성취될 때까지 반복하는 단계; 및
    상기 시각적 데이터 객체를 렌더링하는 단계
    를 포함하며,
    수동적으로 배치된 라벨들은 라벨들을 자동으로 위치 지정하는 상기 단계들로부터 배제되는 컴퓨터 구현 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 단계는 상기 제1 레이아웃과 관련된 스코어를 최적의 레이아웃과 관련된 다른 스코어와 비교하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서, 상기 제1 레이아웃과 상기 제2 레이아웃 중 하나로 진행하는 단계는 최적의 레이아웃에 가장 근접하게 대응하는 레이아웃으로 진행하는 단계를 더 포함하는 컴퓨터 구현 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 차트를 렌더링하기 위한 시스템으로서,
    디스플레이;
    상기 차트를 차트 엘리먼트들로 정의하도록 구성된 차트 객체;
    형상들을 렌더링하도록 동작 가능한 그래픽 모듈;
    상기 차트 객체에 기초하여 형상 기반 차트 정의(shape-based chart definition)를 생성하도록 동작 가능한 차팅 모듈(charting module) - 상기 형상 기반 차트 정의는 상기 그래픽 모듈에 의해 렌더링될 수 있는 형상들로 상기 차트를 정의함 - ; 및
    최적의 레이아웃에 따라 상기 차트 내에 상기 차트와 관련된 라벨들을 자동으로 위치 지정하는 라벨 최적화(label optimization)를 포함하고,
    상기 라벨 최적화는,
    상기 라벨들에 대한 제1 레이아웃을 결정하고,
    상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하고 - 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 것은 목표 함수를 실행하는 것을 더 포함하고, 상기 목표 함수는 상기 제1 레이아웃이 스코어링되는 목표를 제공하고, 상기 목표는 상기 라벨들의 중첩을 최소화하는 것 또는 상기 라벨들로부터 차트 내의 그들의 관련 앵커들까지의 거리를 최소화하는 것에 대응함 - ,
    상기 라벨들에 대한 제2 레이아웃을 결정하고 - 상기 제2 레이아웃은 상기 제1 레이아웃과 비교하여 상기 라벨들 중 적어도 하나에 대해 상이한 위치를 포함하고, 상기 라벨들에 대한 제2 레이아웃을 결정하는 것은 섭동 함수(perturb function)를 실행하는 것을 더 포함하고, 상기 섭동 함수는 제약들(constraints)의 세트에 따라 상기 제1 레이아웃을 변경하며, 상기 섭동 함수는 차트 내에 포함된 단일 라벨의 양태를 조정하는 것에 대응함 - ,
    상기 제2 레이아웃을 스코어링하여 제2 스코어를 결정하고,
    상기 제1 레이아웃의 제1 스코어와 상기 제2 레이아웃의 제2 스코어를 비교하여 어느 레이아웃을 렌더링할지를 결정하고 - 상기 비교는 상기 제1 레이아웃 및 상기 제2 레이아웃 내의 라벨들 각각을 포함함 - ,
    상기 라벨들에 대한 부가적인 레이아웃을 결정하는 것과 상기 부가적인 레이아웃을 스코어링하는 것을 최적의 레이아웃에 근접하는 레이아웃이 성취될 때까지 반복하고,
    상기 그래픽 모듈을 이용하여 상기 제1 레이아웃 또는 상기 제2 레이아웃 중 하나인 시각적 데이터 객체를 상기 디스플레이에 렌더링하며,
    수동적으로 배치된 라벨들은 상기 라벨 최적화로부터 배제되는 것인, 시스템.
  11. 삭제
  12. 삭제
  13. 제10항에 있어서, 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 것은 상기 제1 레이아웃과 관련된 스코어를 최적의 레이아웃과 관련된 다른 스코어와 비교하는 것을 더 포함하는 시스템.
  14. 삭제
  15. 삭제
  16. 시각적 데이터 객체와 관련된 라벨들을 자동으로 위치 지정하는 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 판독 가능한 기억 매체로서, 상기 명령어들은,
    상기 라벨들에 대한 제1 레이아웃을 결정하는 단계;
    상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 단계 - 상기 제1 스코어는 상기 제1 레이아웃 내의 상기 라벨들 각각에 대한 통합 스코어를 나타내고, 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 단계는 목표 함수를 실행하는 단계를 더 포함하고, 상기 목표 함수는 상기 제1 레이아웃이 스코어링되는 목표를 제공하며, 상기 목표는 상기 라벨들의 중첩을 최소화하는 것 또는 상기 라벨들로부터 차트 내의 그들의 관련 앵커들까지의 거리를 최소화하는 것에 대응함 - ;
    상기 라벨들에 대한 제2 레이아웃을 결정하는 단계 - 상기 제2 레이아웃은 상기 제1 레이아웃과는 상이하고, 상기 제2 레이아웃은 상기 제1 레이아웃과 비교하여 상기 라벨들 중 적어도 하나에 대해 상이한 위치를 포함하고, 상기 라벨들에 대한 제2 레이아웃을 결정하는 단계는 섭동 함수(perturb function)를 실행하는 단계를 더 포함하고, 상기 섭동 함수는 제약들(constraints)의 세트에 따라 상기 제1 레이아웃을 변경하며, 상기 섭동 함수는 차트 내에 포함된 단일 라벨의 양태를 조정하는 것에 대응함 - ;
    상기 제2 레이아웃을 스코어링하여 제2 스코어를 결정하는 단계 - 상기 제2 스코어는 상기 제1 레이아웃 내의 상기 라벨들 각각에 대한 통합 스코어를 나타냄 - ;
    상기 제1 스코어와 상기 제2 스코어를 비교하는 단계;
    상기 제1 스코어와 상기 제2 스코어의 비교에 따라 상기 시각적 데이터 객체를 렌더링하기 위해 선택된 레이아웃으로서 상기 제1 레이아웃과 상기 제2 레이아웃 중 하나로 진행하는 단계;
    상기 라벨들에 대한 부가적인 레이아웃을 결정하는 단계와 상기 부가적인 레이아웃을 스코어링하는 단계를 최적의 레이아웃에 근접하는 레이아웃이 성취될 때까지 반복하는 단계; 및
    상기 시각적 데이터 객체를 렌더링하는 단계
    를 포함하며,
    수동적으로 배치된 라벨들은 라벨들을 자동으로 위치 지정하는 상기 단계들로부터 배제되는 컴퓨터 판독 가능한 기억 매체.
  17. 삭제
  18. 제16항에 있어서, 상기 제1 레이아웃을 스코어링하여 제1 스코어를 결정하는 단계는 상기 제1 레이아웃과 관련된 스코어를 최적의 레이아웃과 관련된 다른 스코어와 비교하는 단계를 더 포함하는 컴퓨터 판독 가능한 기억 매체.
  19. 제18항에 있어서, 상기 제1 레이아웃과 상기 제2 레이아웃 중 하나로 진행하는 단계는 최적의 레이아웃에 가장 근접하게 대응하는 레이아웃으로 진행하는 단계를 더 포함하는 컴퓨터 판독 가능한 기억 매체.
  20. 삭제
  21. 삭제
  22. 삭제
KR1020050058232A 2004-10-18 2005-06-30 차트 상의 자동 라벨 배치를 위한 시스템 및 방법 KR101159325B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20060049709A KR20060049709A (ko) 2006-05-19
KR101159325B1 true KR101159325B1 (ko) 2012-06-22

Family

ID=35788724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050058232A KR101159325B1 (ko) 2004-10-18 2005-06-30 차트 상의 자동 라벨 배치를 위한 시스템 및 방법

Country Status (5)

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

Families Citing this family (44)

* 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
GB2473370A (en) 2008-05-06 2011-03-09 Hewlett Packard Development Co Spatiotemporal media objects layouts
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
US8515957B2 (en) 2009-07-28 2013-08-20 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via injection
EP2471009A1 (en) 2009-08-24 2012-07-04 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
CN105426368B (zh) * 2014-09-03 2020-07-07 腾讯科技(北京)有限公司 信息显示方法、装置及电子设备
US10482635B2 (en) * 2014-09-29 2019-11-19 Adp, Llc Chart labeling system
AU2016229923B2 (en) * 2015-03-10 2021-01-21 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
AU2017274558B2 (en) 2016-06-02 2021-11-11 Nuix North America Inc. Analyzing clusters of coded documents
CN106372230A (zh) * 2016-09-09 2017-02-01 天津海量信息技术股份有限公司 一种图表标签统计方法及装置
US11074726B2 (en) * 2017-03-09 2021-07-27 Apple Inc. Techniques for automatically mitigating overlapping labels associated with pie charts
CN107544950A (zh) * 2017-07-26 2018-01-05 阿里巴巴集团控股有限公司 添加标签的方法及装置
US10825214B2 (en) * 2017-10-30 2020-11-03 Microsoft Technology Licensing, Llc Priority based automatic placement of labels on charts
US10937213B2 (en) 2019-06-27 2021-03-02 Fuji Xerox Co., Ltd. Systems and methods for summarizing and steering multi-user collaborative data analyses
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 렉스소프트 주식회사 도식에서의 그래프의 자동 배치 및 맞춤을 위한 방법 및 컴퓨터 판독가능매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154219A (en) * 1997-12-01 2000-11-28 Microsoft Corporation System and method for optimally placing labels on a map

Family Cites Families (7)

* 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 グラフ生成装置
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154219A (en) * 1997-12-01 2000-11-28 Microsoft Corporation System and method for optimally placing labels on a map

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
P. Asman and "Creating SVG Pie Charts through XSLT via Web Service" *
P. Asman and "Creating SVG Pie Charts through XSLT via Web Service"*
S. Edmondson et al, "A General Cartographic Labeling Algorithm" *
S. Edmondson et al, "A General Cartographic Labeling Algorithm"*
S. KIRKPATRICK et al. "Optimization by simulated annealing", Science vol.22, no.4598. *

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101159325B1 (ko) 차트 상의 자동 라벨 배치를 위한 시스템 및 방법
US8638333B2 (en) Modifying and formatting a chart using pictorially provided chart elements
US10379716B2 (en) Presenting object properties
US7707498B2 (en) Specific type content manager in an electronic document
JP6293142B2 (ja) データを消費型コンテンツに変換するときにバリエーションを生じさせること
US9619435B2 (en) Methods and apparatus for modifying typographic attributes
US8966361B2 (en) Providing summary view of documents
EP1638013A2 (en) Common charting using shapes
US10839139B2 (en) Glyph aware snapping
US20150149895A1 (en) Filtering fonts based on a selection of glyphs
US8943431B2 (en) Text operations in a bitmap-based document
US20180033180A1 (en) Transitioning between visual representations
US20030128184A1 (en) Determining a minimum size of presentation data
US10825214B2 (en) Priority based automatic placement of labels on charts
US11030388B2 (en) Live text glyph modifications
US20240104150A1 (en) Presenting Related Content while Browsing and Searching Content
US20240012980A1 (en) Methods and systems for generating and selectively displaying portions of scripts for nonlinear dialog between at least one computing device and at least one user
CN114943676A (zh) 通过栅格化图像的自动化数字工具标识

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 8