(57)【要約】【課題】図表アプリケーションプログラムにおいて作成される、図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する方法、システム、およびコンピュータ読取り可能記憶媒体を提供する。【解決手段】図表アプリケーションプログラムは、図表中の予めレイアウトされた一群の自動配置図表要素およびユーザ配置図表要素を選択すること、および図表アプリケーションプログラムが計算した自動的な位置およびサイズに従って、自動配置図表要素およびユーザ配置図表要素を自動的にレイアウトすることを含む方法を実行する。本方法はさらに、図表中の自動的にレイアウトされた要素の中から、要素それぞれを選択し直すこと、選択されている図表要素がユーザ配置図表要素であるかどうか判定すること、および選択されている図表要素がユーザ配置図表要素である場合は、ユーザ指定レイアウトに従って図表中にユーザ配置図表要素をレイアウトすることを含む。【選択図】図３
2006178993.tif 000002
【特許請求の範囲】
【請求項１】
図表アプリケーションプログラムにおいて作成される図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する方法であって、
（ａ）前記図表中の複数の図表要素を選択することであって、前記複数の図表要素は、自動配置図表要素およびユーザ配置図表要素を含むこと、
（ｂ）前記自動配置図表要素および前記ユーザ配置図表要素を前記図表中に自動的にレイアウトすること、
（ｃ）前記図表中の前記自動的にレイアウトされた要素の中から、第１の図表要素を現在の図表要素として選択すること、
（ｄ）前記現在の図表要素がユーザ配置図表要素であるかどうか判定すること、
（ｅ）前記現在の図表要素がユーザ配置図表要素である場合、ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトすること、
（ｆ）前記図表中の次の図表要素を、前記現在の図表要素として選択すること、および、
（ｇ）前記図表中の前記複数の図表要素それぞれに対して、前記図表中のすべての前記ユーザ配置要素がレイアウトされるまで、前記動作（ｃ）〜（ｆ）を繰り返すこと
を含むことを特徴とする方法。
【請求項２】
前記現在の図表要素がユーザ配置図表要素でない場合、前記図表中の次の図表要素を前記現在の図表要素として選択することを特徴とする請求項１に記載の方法。
【請求項３】
ユーザ指定レイアウトに従って、前記ユーザ配置要素を前記図表中にレイアウトすることは、直前のユーザ操作に従って、前記ユーザ配置図表要素を位置変更しサイズ変更することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトすることは、
前記ユーザ配置図表要素が、前記図表中のデータポイントに関連づけられているかどうか判定すること、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられている場合、前記ユーザ指定レイアウトに従って計算されたデータポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすること、および、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられていない場合、前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすること
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ユーザ指定レイアウトに従って計算された、データポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすることは、前記データポイント参照場所からの、前記ユーザ配置要素の中心の予め計算されたサイズおよび位置のオフセットを表す値を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすることは、前記図表エリアの幅および高さに対する、前記ユーザ配置要素の中心、幅、および高さの予め計算された比を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項４に記載の方法。
【請求項７】
図表中の自動配置要素およびユーザ配置要素のレイアウトを決定し、複数の図表要素をレイアウトする図表アプリケーションプログラムを実行するように動作可能なクライアントコンピュータを備えるシステムであって、前記図表アプリケーションプログラムは、
（ａ）自動配置図表要素およびユーザ配置図表要素を含む、前記図表中の複数の図表要素を選択し、
（ｂ）前記自動配置図表要素および前記ユーザ配置図表要素を前記図表中に自動的にレイアウトし、
（ｃ）前記図表中の前記自動的にレイアウトされた要素の中から、第１の図表要素を現在の図表要素として選択し、
（ｄ）前記現在の図表要素がユーザ配置図表要素であるかどうか判定し、
（ｅ）前記現在の図表要素がユーザ配置図表要素である場合、ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトし、
（ｆ）前記図表中の次の図表要素を、前記現在の図表要素として選択し、および、
（ｇ）前記図表中の前記複数の図表要素それぞれに対して、前記図表中のすべての前記ユーザ配置要素がレイアウトされるまで、前記動作（ｃ）〜（ｆ）を繰り返す
ようにさらに動作することを特徴とするシステム。
【請求項８】
前記現在の図表要素がユーザ配置図表要素でない場合、前記図表中の次の図表要素を前記現在の図表要素として選択することを特徴とする請求項７に記載のシステム。
【請求項９】
ユーザ指定レイアウトに従って、前記ユーザ配置要素を前記図表中にレイアウトすることは、直前のユーザ操作に従って、前記ユーザ配置図表要素を位置変更しサイズ変更することを含むことを特徴とする請求項７に記載のシステム。
【請求項１０】
ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトすることは、
前記ユーザ配置図表要素が、前記図表中のデータポイントに関連づけられているかどうか判定すること、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられている場合、前記ユーザ指定レイアウトに従って計算されたデータポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすること、および、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられていない場合、前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすること
を含むことを特徴とする請求項７に記載のシステム。
【請求項１１】
前記ユーザ指定レイアウトに従って計算された、データポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすることは、前記データポイント参照場所からの、前記ユーザ配置要素の中心の予め計算されたサイズおよび位置のオフセットを表す値を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすることは、前記図表エリアの幅および高さに対する、前記ユーザ配置要素の中心、幅、および高さの予め計算された比を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項１０に記載のシステム。
【請求項１３】
コンピュータ実行可能命令が格納されたコンピュータ読取り可能記憶媒体であって、前記命令は、コンピュータによって実行されると、前記コンピュータに、図表アプリケーションプログラムにおいて作成される図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する方法を実施させ、前記方法は、
（ａ）自動配置図表要素およびユーザ配置図表要素を含む、前記図表中の複数の図表要素を選択すること、
（ｂ）前記自動配置図表要素および前記ユーザ配置図表要素を前記図表中に自動的にレイアウトすること、
（ｃ）前記図表中の前記自動的にレイアウトされた要素の中から、第１の図表要素を現在の図表要素として選択すること、
（ｄ）前記現在の図表要素がユーザ配置図表要素であるかどうか判定すること、
（ｅ）前記現在の図表要素がユーザ配置図表要素である場合、ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトすること、
（ｆ）前記図表中の次の図表要素を、前記現在の図表要素として選択すること、および、
（ｇ）前記図表中の前記複数の図表要素それぞれに対して、前記図表中のすべての前記ユーザ配置要素がレイアウトされるまで、前記動作（ｃ）〜（ｆ）を繰り返すこと
を含むことを特徴とするコンピュータ読取り可能記憶媒体。
【請求項１４】
前記現在の図表要素がユーザ配置図表要素でない場合、前記図表中の次の図表要素を前記現在の図表要素として選択することを特徴とする請求項１３に記載のコンピュータ読取り可能記憶媒体。
【請求項１５】
ユーザ指定レイアウトに従って、前記ユーザ配置要素を前記図表中にレイアウトすることは、直前のユーザ操作に従って、前記ユーザ配置図表要素を位置変更しサイズ変更することを含むことを特徴とする請求項１３に記載のコンピュータ読取り可能記憶媒体。
【請求項１６】
ユーザ指定レイアウトに従って、前記ユーザ配置図表要素を前記図表中にレイアウトすることは、
前記ユーザ配置図表要素が、前記図表中のデータポイントに関連づけられているかどうか判定すること、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられている場合、前記ユーザ指定レイアウトに従って計算されたデータポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすること、および、
前記ユーザ配置図表要素が前記図表中のデータポイントに関連づけられていない場合、前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすること
を含むことを特徴とする請求項１３に記載のコンピュータ読取り可能記憶媒体。
【請求項１７】
前記ユーザ指定レイアウトに従って計算された、データポイント参照場所からのオフセットとして、前記ユーザ配置図表要素をレイアウトすることは、前記データポイント参照場所からの、前記ユーザ配置要素の中心の予め計算されたサイズおよび位置のオフセットを表す値を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項１６に記載のコンピュータ読取り可能記憶媒体。
【請求項１８】
前記ユーザ指定レイアウトに従って計算された、前記図表のエリアの割合として、前記ユーザ配置図表要素をレイアウトすることは、前記図表エリアの幅および高さに対する、前記ユーザ配置要素の中心、幅、および高さの予め計算された比を使用して、前記ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含むことを特徴とする請求項１６に記載のコンピュータ読取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、図表作成アプリケーションプログラムに関し、より詳細には、図表作成アプリケーションにおける図表要素の配置に関する。
【背景技術】
【０００２】
図表作成プログラム（表計算アプリケーションプログラム、文書処理アプリケーションプログラム、およびプレゼンテーション用アプリケーションプログラムなど）は、ユーザが提供したデータから、様々な種類の図表の作成を可能にする。通常、図表作成プログラムは、予め定義された形式に従って図表要素（たとえば、タイトル、凡例、プロットエリアなど）が並べられる、固定レイアウトを有する図表を生成する。しかし、多くのユーザは、図表の全体的な外見に影響を与えるために、こうした要素の配置をある程度制御して、表示基準に準拠し、または図表中に提示されるある特定の細部を強調できるように、図表要素のレイアウトをある程度制御し続けたいと望む。
【０００３】
この目的のために、ユーザが特定の図表要素の場所を手作業（すなわち、手動レイアウト）で変更することを可能にする、いくつかの図表作成プログラムが開発されている。しかし、こうした図表作成プログラムは、残っている要素に対して適切な場所を見つけるための、何の補助もユーザに提供することができない。たとえば、ユーザが、棒グラフ中の凡例を位置変更し、および／またはサイズ変更しても、図表作成プログラムによって自動的に生成される他の要素（プロットエリアなど）は、変更されないままである。さらに、現在の図表作成プログラムでは、位置変更され、および／またはサイズ変更された図表要素は、図表中に、要素の直前の位置に対応する空き領域を作成する。図表要素の手動レイアウトによって作成された空き領域に対応して、現在の図表作成プログラムは、図表のプロットエリアを拡大して、手動レイアウト要素によって作成された空き領域を埋める。ただし、こうした方法はしばしば、図表作成プログラムによって自動的に配置された要素とともに、手動要素がレイアウトされると、許容し難い視覚的レイアウトを生じさせる。
【０００４】
本発明の様々な実施形態は、こうした検討事項および他の検討事項に関連してなされたものである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図表の全体的な外見に影響を与えるために、図表要素の配置を制御して、表示基準に準拠し、または図表中に提示されるある特定の細部を強調できるように、図表要素のレイアウトを制御する方法を提供する。図表作成プログラムによって自動的に配置された要素とともに手動要素がレイアウトされた場合に、許容し難い視覚的レイアウトを生じないようにする。
【課題を解決するための手段】
【０００６】
本発明によると、上記および他の問題は、図表アプリケーションプログラムにおいて作成される、図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する方法、システム、およびコンピュータ読取り可能記憶媒体によって解決される。ユーザ配置要素は、ユーザによって移動され、および／またはサイズ変更された図表要素を含む。自動配置要素は、図表アプリケーションプログラムによって計算された自動的な位置およびサイズに従ってレイアウトされた図表要素を含む。
【０００７】
本発明の一態様によると、本方法は、図表中の、予めレイアウトされた一群の自動配置図表要素およびユーザ配置図表要素を選択することによって、図表要素の第１の「パス（pass）」を行うこと、ならびに図表アプリケーションプログラムによって計算された自動的な位置およびサイズに従って、自動配置図表要素およびユーザ配置図表要素を自動的にレイアウトすることを含む。したがって、最初に、図表レイアウトは、すべての図表要素が自動配置要素であるかのように計算される。本方法は、図表中の自動的にレイアウトされた要素の中から、その各要素を選択し直すことによって、図表要素の第２のパスを行うこと、選択されている図表要素がユーザ配置図表要素であるかどうか判定すること、および選択されている図表要素がユーザ配置図表要素である場合は、ユーザ指定レイアウトに従って、図表中にユーザ配置図表要素をレイアウトすることをさらに含む。選択されている図表要素のいずれかがユーザ配置図表要素でない場合は、こうした要素に対して予め計算された自動的な位置およびサイズが維持される。
【０００８】
ユーザ指定レイアウトに従って、図表中にユーザ配置要素をレイアウトすることは、ユーザによる、図表中の要素の直前の移動および／またはサイズ変更に従って、ユーザ配置図表要素を位置変更し直し、サイズ変更し直すことを含み得る。ユーザ指定レイアウトに従って、図表中にユーザ配置図表要素をレイアウトする際、本方法は、ユーザ配置図表要素が、図表中のデータポイントに関連づけられているかどうか判定することを含み、ユーザ配置図表要素が図表中のデータポイントに関連づけられている場合は、ユーザ指定レイアウトに従って計算されたデータポイント参照場所からのオフセットとして、ユーザ配置図表要素をレイアウトすること、およびユーザ配置図表要素が図表中のデータポイントに関連づけられていない場合は、ユーザ指定レイアウトに従って計算された図表のエリアの割合として、ユーザ配置図表要素をレイアウトすることをさらに含み得る。
【０００９】
ユーザ指定レイアウトに従って計算されたデータポイント参照場所からのオフセットとしてユーザ配置図表要素をレイアウトする際、本方法はさらに、データポイント参照場所からのユーザ配置要素の中心の、予め計算されたサイズおよび位置のオフセットを表す値を使用して、ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含み得る。ユーザ指定レイアウトに従って計算された図表のエリアの割合として、ユーザ配置図表要素をレイアウトする際、本方法はさらに、図表エリアの幅および高さに対する、ユーザ配置要素の中心、幅、および高さの予め計算された比を使用して、ユーザ配置図表要素のレイアウト位置およびレイアウトサイズを計算することを含み得る。
【００１０】
本発明の他の態様は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品やコンピュータ読取り可能記憶媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行する命令からなるコンピュータプログラムをエンコードするコンピュータ記憶媒体でよい。コンピュータプログラム製品は、コンピューティングシステムによって読取り可能であり、コンピュータプロセスを実行する命令からなるコンピュータプログラムをエンコードする、搬送波上で伝搬される信号でもよい。
【００１１】
本発明を特徴づける、これらおよび他の特徴および利点が、以下の詳細な説明を読み、関連する図面を精査することによって明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
ここで図面を参照して本発明の様々な態様を記述するが、図面において、同じ番号は同じ要素を表す。特に、図１およびその対応する説明は、本発明の実施形態を実装することができる適切なコンピューティング環境の、簡潔で一般的な説明を提供することを意図している。パーソナルコンピュータ上のオペレーティングシステムにおいて実行されるプログラムモジュールと連動して実行されるプログラムモジュールという一般的文脈において本発明を説明するが、本発明は、他のコンピュータシステムやプログラムモジュールと組み合わせても実装できることが当業者には理解されよう。
【００１３】
概して、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施できることが、当業者には理解されよう。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型コンピューティング環境でも実施することができる。分散型コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイス両方に配置することができる。
【００１４】
ここで図１を参照して、本発明の様々な実施形態で使用されるコンピュータ２用の例示的なコンピュータアーキテクチャを記述する。図１に示すコンピュータアーキテクチャは、中央処理ユニット５（「ＣＰＵ」）と、ランダムアクセスメモリ９（「ＲＡＭ」）および読出し専用メモリ（「ＲＯＭ」）１１を含むシステムメモリ７と、ＣＰＵ５にメモリを結合するシステムバス１２とを含む従来のデスクトップまたはラップトップコンピュータを示す。基本入出力システムは、たとえば起動中にコンピュータ内部の要素間で情報を転送するのを助ける基本ルーチンを含み、ＲＯＭ１１に格納される。コンピュータ２は、後でより詳細に述べる、オペレーティングシステム１０、アプリケーションプログラム、および他のプログラムモジュールを格納する、大容量記憶デバイス１４をさらに含む。
【００１５】
大容量記憶デバイス１４は、バス１２に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ５に接続される。大容量記憶デバイス１４およびそれに関連するコンピュータ読取り可能記憶媒体は、コンピュータ２に対して不揮発性記憶領域を提供する。本明細書に含まれるコンピュータ読取り可能記憶媒体の記述は、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶デバイスに言及するが、コンピュータ読取り可能記憶媒体は、コンピュータ２によってアクセスすることができる、市販されているどの媒体でもよいことを当業者は理解されたい。
【００１６】
限定ではなく例として、コンピュータ読取り可能記憶媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのいかなる方法または技術でも実現される、揮発性媒体および不揮発性媒体、取外し可能媒体および取外し不可能な媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他の固体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、または他の光学記憶デバイス、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使うことができ、コンピュータ２によってアクセスすることができる他のどの媒体も含むが、それに限定されない。
【００１７】
本発明の様々な実施形態によると、コンピュータ２は、インターネットなどのネットワーク１８を介した、リモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作することができる。コンピュータ２は、バス１２に接続されたネットワークインターフェースユニット２０を介して、ネットワーク１８に接続することができる。ネットワークインターフェースユニット２０は、他のタイプのネットワークおよびリモートコンピュータシステムに接続するのにも使用できることを理解されたい。コンピュータ２は、キーボード、マウス、または電子スタイラス（図１には示さず）を含む他のいくつかのデバイスからの入力を受け取り、処理する入出力コントローラ２２も含み得る。同様に、入出力コントローラ２２は、表示画面、プリンタ、または他のタイプの出力デバイスへの出力を可能にし得る。
【００１８】
上で簡潔に述べたように、ワシントン州レドモンドのマイクロソフトコーポレーション製のウィンドウズ（登録商標）ＸＰオペレーティングシステムなど、ネットワーク接続されたパーソナルコンピュータの動作の制御に適したオペレーティングシステム１０を含む、いくつかのプログラムモジュールおよびデータファイルを、コンピュータ２の大容量記憶デバイス１４およびＲＡＭ９に格納することができる。コンピュータ２は、１つまたは複数のアプリケーションプログラムを実行することもできる。具体的には、コンピュータ２は、図表アプリケーション１６を実行するように動作可能である。当業者に公知であるように、図表アプリケーション１６は、ユーザによって与えられた数値およびテキストデータから、カラムチャート、棒グラフ、Ｘ−Ｙチャート、円グラフ、レーダーチャート、ドーナツグラフ、およびポーラーチャートを含む図表を作成する機能を提供する。図表アプリケーション１６は、テキスト、数値、および図表を含むその他の機能用の、様々な書式設定オプションを適用する機能も提供する。
【００１９】
本発明の例示的な実施形態に従って、以下で詳細に説明するように、図表アプリケーション１６を、図表中の自動配置要素（automatically-placed elements）およびユーザ配置要素（user-placed elements）のレイアウトを決定するのに使用することができる。本明細書において定義される「自動配置要素」とは、図表アプリケーション１６によって決定された固定の位置およびサイズに対応する図表要素である。「ユーザ配置要素」（または「手動レイアウト要素」）とは、ユーザの好みに従って、ユーザによって移動され、および／またはサイズ変更された図表要素である。本発明の様々な実施形態によると、図表要素は、図表アプリケーション１６によって確定された元の自動的な位置およびサイズに移動され、および／またはサイズ変更された場合であっても、依然としてユーザ配置要素とみなされることを理解されたい。
【００２０】
本発明の一実施形態によると、図表アプリケーション１６は、ワシントン州レドモンド在の本件特許出願人によるＥＸＣＥＬ表計算アプリケーションプログラム、ＷＯＲＤ文書処理アプリケーションプログラム、およびＰＯＷＥＲＰＯＩＮＴプレゼンテーション用アプリケーションプログラムを含むアプリケーションプログラムからなる、ＯＦＦＩＣＥスイートを含む。ただし、本明細書において記載する本発明の様々な態様は、他の製造元からの他のアプリケーションプログラムでも使用できることを理解されたい。さらに、本明細書において記載する本発明の態様は、上で識別されるアプリケーションプログラムという文脈で提示されるが、本発明の様々な態様を実施するのに、他のタイプのアプリケーションプログラムも使用できることを理解されたい。図表アプリケーション１６によって実施される様々な機能に関するこれ以上の詳細は、図２〜３を参照して後で述べる。
【００２１】
ここで図２を参照して、本発明の例示的な実施形態による、図表アプリケーション１６によって生成することができる例示的な図表２００を示すスクリーンショットを説明する。図表２００は、データカラム５０、５２、５４、および５６を有するプロットエリアを含むカラムチャートである。図表２００中の各データカラム５０、５２、５４、および５６は、図表のｙ軸に沿った数値に対応する。図表２００については、以下の図３の説明において、後で参照する。
【００２２】
ここで図３を参照して、図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する図表アプリケーションプログラム１６によって実施されるプロセスを示す例示的なルーチン３００を説明する。本明細書において提示されるルーチンの説明を読む場合、本発明の様々な実施形態の論理動作は、（１）コンピューティングシステム上で実行される、コンピュータが実施する一連の動作もしくはプログラムモジュールとして、および／または（２）相互接続されたマシン論理回路、もしくはコンピューティングシステム内の回路モジュールとして実装されることを理解されたい。この実装形態は、本発明を実装するコンピューティングシステムの性能要件に応じた選択の問題である。したがって、本明細書において説明する本発明の実施形態を構成する、図３に示す論理動作は、動作、構造デバイス、作用、またはモジュールなどと、様々に呼ばれる。こうした動作、構造デバイス、作用、およびモジュールは、本明細書に添付した特許請求の範囲に記載される本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的のデジタル論理、およびこれらのどの組合せとしても実装できることが、当業者には理解されよう。
【００２３】
ルーチン３００は、動作３０５において始まり、ここで、図表アプリケーション１６は、図表アプリケーション１６によって作成された図表から図表要素を選択する。具体的には、図表アプリケーション１６は、図表中の最も外側の要素を第１の図表要素として選択することによって、図表要素の第１の「パス（pass）」を開始することができる。ルーチン３００は、動作３１０において継続し、ここで図表アプリケーション１６は、図表が、現在選択されている図表要素の他に、さらなる図表要素を含むかどうか判定する。動作３１０において、図表がさらなる要素を含むと図表アプリケーション１６が判定した場合、ルーチン３００は、動作３１５において継続し、ここで、図表アプリケーション１６は、選択されている図表要素を、所定の固定位置およびサイズに対応する自動配置要素として図表中にレイアウトする。本発明の様々な実施形態によると、図表要素の第１の「パス」の間、図表アプリケーション１６は、ある要素がユーザ配置要素または予め配置された手動要素であっても、要素すべてを、自動配置要素としてレイアウトすることを理解されたい。したがって、動作３１５において、ユーザ配置要素は、そのユーザ選択位置およびサイズから、図表アプリケーション１６によって決定された自動レイアウトに従って、一時的に位置変更され、サイズ変更される。動作３１５から、ルーチン３００は、動作３２０において継続し、ここで、図表アプリケーション１６は、図表中の次の図表要素を選択する。動作３２０から、ルーチン３００は次いで、動作３１０に戻る。
【００２４】
動作３１０において、図表アプリケーション１６が、図表に自動的にレイアウトされるべき要素をそれ以上含まないと判定した場合、ルーチン３００は、動作３２５において継続し、ここで、図表アプリケーション１６は、第１の図表要素を動作３２５において選択し直すことによって、自動的にレイアウトされた図表要素の第２の「パス」を開始する。ルーチン３００は次いで、動作３３０において継続し、ここで、図表アプリケーション１６は、現在選択されている図表要素の他に、図表がさらなる図表要素を含むかどうか判定する。動作３３０において、図表がさらなる要素を含むと図表アプリケーション１６が判定した場合、ルーチン３００は、動作３３５において継続する。
【００２５】
動作３３５において、図表アプリケーション１６は、現在選択されている要素が手動レイアウト要素であるか、それともユーザ配置要素であるか判定する。具体的には、図表アプリケーション１６は、動作３１５において要素が自動的にレイアウトされるのに先立って、要素の直前の位置およびサイズを呼び戻す。動作３３５において、現在選択されている要素がユーザ配置要素でない（すなわち、要素は自動配置要素である）と図表アプリケーション１６が判定した場合、ルーチン３００は、動作３５５に分岐し、ここで、図表アプリケーション１６は、図表中の次の要素を選択する。図表アプリケーション１６が、図表を介した第２の「パス」の間に自動配置図表要素を決定すると、自動配置要素の現在の位置およびサイズが、図表の再レイアウトの間維持されることが理解されよう。ただし、以下で詳細に説明するように、ユーザ配置または手動レイアウト図表要素は、図表アプリケーション１６によって、ユーザによって予め指定されたレイアウトに従って（すなわち、図表要素を手作業でサイズ変更し、および／または位置変更することによって）サイズ変更され、位置変更される。
【００２６】
動作３３５において、現在選択されている要素が手動レイアウトまたはユーザ配置要素であると図表アプリケーションが判定した場合、ルーチン３００は、動作３４０において継続し、ここで図表アプリケーション１６は、ユーザ配置要素が図表中のデータポイントに関連づけられるかどうか判定する。たとえば、あるデータポイントに関連づけられたユーザ配置図表要素は、上述した図２の図表２００中のカラム５２など、カラムチャートのプロットエリア内で、ある特定の数値に関連づけられたカラムでよい。動作３４０において、ユーザ配置要素が、図表中のデータポイントに関連づけられると判定された場合、ルーチン３００は、動作３４５に続く。一方、ユーザ配置要素が、図表中のデータポイントに関連づけられないと判定された場合、ルーチン３００は、動作３５０に分岐する。
【００２７】
動作３４５において、図表アプリケーション１６は、データポイントに関連づけられたユーザ配置要素を、データポイントの「参照場所」からの位置オフセットとしてレイアウトする。具体的には、データポイントに関連づけられたユーザ配置要素は、データポイントの参照場所からの位置オフセットとして位置変更され、サイズ変更される。例示的な一実施形態によると、データポイントの参照場所は、データポイント図表要素の場所を示す値である。たとえば、図２の図表２００において、カラム５２にとっての参照場所は、カラムの最上部に対応する「５」という数値になるであろう。折れ線グラフでは、参照場所は、データポイントマーカの中心になるであろう。本発明の様々な実施形態によると、「オフセット」は、直線軸を有する図表（カラムチャートおよびｘ−ｙチャートなど）に対する（ｘ直線（x-linear）、ｙ直線（y-linear））位置オフセット、ならびに原線（polar axis）を有する図表（円グラフおよびポーラーチャートなど）に対する（放射状線、角度）位置オフセットである。ユーザが、最初にデータポイントに関連づけられた図表要素を操作する（従って、この図表要素をユーザ配置または手動レイアウト要素にする）と、図表アプリケーション１６は、要素のサイズおよびデータポイント参照場所からの、要素の位置オフセットを計算することが理解されよう。図表アプリケーション１６は、計算された値を使用して、レイアウトプロセスの間に、ユーザ配置図表要素の位置およびサイズを計算する。動作３４５から、ルーチン３００は次いで、動作３５５に分岐し、ここで、図表アプリケーション１６は、図表中の次の要素を選択する。
【００２８】
ここで動作３４０に戻ると、ユーザ配置要素が、データポイントに関連づけられない場合（たとえば、図表タイトルまたは凡例）、ルーチン３００は、動作３５０に分岐する。動作３５０において、図表アプリケーション１６は、ユーザ配置要素を、図表エリアの割合（a proportion of the chart area）としてレイアウトする。つまり、ユーザ配置要素は、現在の図表エリアの割合として位置変更され、サイズ変更される。具体的には、ユーザが、図表要素を操作し、そうすることによって、その要素をユーザ配置または手動レイアウト図表要素とすると、図表アプリケーション１６は、現在の図表エリアの幅および高さに対する、図表要素の周囲の境界ボックス（図示せず）の中心、幅、および高さの比を計算する。図表アプリケーション１６は、こうした計算された比を使用して、図表レイアウトプロセスの間に、ユーザ配置要素の位置およびサイズを計算する。ルーチン３００は次いで、動作３５０から動作３５５において継続し、ここで、図表アプリケーション１６は、図表中の次の要素を選択する。
【００２９】
動作３５５から、ルーチン３００は動作３３０に戻り、ここで、図表アプリケーション１６は、現在の図表中に、レイアウトされるべきそれ以上の要素があるかどうか判定する。図表中に残っている要素がある場合、ルーチン３００は、動作３４０に戻る。図表中に残っている要素がない場合、ルーチン３００は終わる。
【００３０】
上記内容に基づいて、本発明の様々な実施形態は、図表アプリケーションプログラムにおいて作成される、図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する方法、システム、およびコンピュータ読取り可能記憶媒体を含むことを理解されたい。上記明細事項、例、およびデータは、本発明の構成の製造および使用について完全に説明している。本発明の多くの実施形態は、本発明の精神および範囲から逸脱することなく行われるので、本発明は、添付の特許請求の範囲に存在する。
【図面の簡単な説明】
【００３１】
【図１】本発明の様々な実施形態において使用され提供されるコンピュータシステムを示すコンピュータシステムアーキテクチャ図である。
【図２】本発明の例示的な実施形態による、図１のコンピュータシステムにおいて図表アプリケーションプログラムによって生成することができる例示的な図表を示すスクリーンショット図である。
【図３】本発明の例示的な実施形態による、図１のコンピュータシステムにおける図表中の自動配置要素およびユーザ配置要素のレイアウトを決定する図表アプリケーションプログラムによって実施される例示的なルーチンを示す図である。
【図１】
2006178993.tif 000003
【図２】
2006178993.tif 000004
【図３】
2006178993.tif 000005