グラフの構造

From Apache OpenOffice Wiki
< JA‎ | Documentation/BASIC Guide
Revision as of 16:48, 15 December 2008 by G11nAutomation (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
doc OOo
Book.png


グラフの構造および、サポートするサービスやインターフェースは、個々のグラフの種類ごとに異なります。たとえば、メソッドと Z 軸の属性は、3D グラフでは使用できますが、軸を操作するインターフェースがないため、2D グラフや円グラフでは使用できません。

タイトル、サブタイトルおよび凡例

タイトル、サブタイトルおよび凡例は、基本要素としてグラフ作成時に使用できます。そして Chart オブジェクトには、このようなオブジェクトの操作用に、次の属性が用意されています。

HasMainTitle (Boolean)
タイトルを有効化する指定。
Title (Object)
グラフのタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。
HasSubTitle(Boolean)
サブタイトルを有効化する指定。
Subtitle (Object)
グラフのサブタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。
HasLegend (Boolean)
凡例を有効化する指定。
Legend (Object)
凡例に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartLegend サービスをサポート)。

com.sun.star.chart.ChartTitle サービスおよび com.sun.star.chart.ChartLegend サービスの両方が com.sun.star.drawing.Shape サービスをサポートしています。このため、Position 属性および Size 属性を使用して、要素の位置とサイズを指定できます。凡例とタイトルのサイズは、現在の表示内容と文字の高さなどに基づいて自動的に計算されるため、サイズのプロパティーは読み取りアクセスのみが許可されています。

要素の詳細な書式設定には、塗りつぶしと線の属性 (com.sun.star.drawing.FillProperties サービスおよび com.sun.star.drawing.LineProperties サービス) と文字の属性 (com.sun.star.style.CharacterProperties サービス) が提供されています。

com.sun.star.chart.ChartTitle には、一覧表示される書式設定の属性だけでなく、他 2 つの属性も含まれています。

String (String)
タイトルまたはサブタイトルとして表示するテキスト。
TextRotation (Long)
100 分の 1 度単位で指定したテキストの回転角。

凡例 (com.sun.star.chart.ChartLegend) には、次の追加属性が含まれています。

Alignment (Enum)
凡例を表示する位置 (com.sun.star.chart.ChartLegendPosition タイプの値)。

次のサンプルコードは、「Main Title String」というタイトル、「Subtitle String」というサブタイトル、および凡例を持つグラフを作成します。凡例については、背景色を灰色、表示位置をグラフの下部、テキストサイズを 7 ポイントとしています。

Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12

Doc = StarDesktop.CurrentComponent

Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.HasMainTitle = True
Chart.Title.String = "Main Title String"
Chart.HasSubTitle = True
Chart.Subtitle.String = "Subtitle String"
Chart.HasLegend = True 
Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Legend.FillColor = RGB(210, 210, 210)
Chart.Legend.CharHeight = 7

背景

各グラフには、背景表示用の領域 (グラフエリア) があります。Chart オブジェクトは、背景を書式設定する Area 属性を提供します。

Area (Object)
グラフの背景表示用の領域 (com.sun.star.chart.ChartArea サービスをサポート)。

ここで言うグラフの背景 (グラフエリア) とは、タイトル、サブタイトル、凡例などの表示位置も含めた、グラフ全体をカバーする領域を指します。関連する com.sun.star.chart.ChartArea サービスは、線と塗りつぶしの属性をサポートしています。

ダイアグラム

Chart オブジェクトは、最終的にデータを表示する軸と目盛線のある座標系を形成する Diagram 属性を提供します。

Diagram (Object)
データがプロットされる座標系を形成するオブジェクト。com.sun.star.chart.Diagram サービスと以下をサポートします。

グラフの種類によって、さまざまなサービスがサポートされています (「グラフの種類」参照)。

壁面と床面

グラフの壁面とは、座標系の背景で、ここにデータがプロットされます。 3D グラフの壁面は、通常、プロットされたデータの後に 1 つ、左または右の境界設定として 1 つあります。これは、グラフの回転によって異なります。3D グラフには、床面も表示されます。

Diagram オブジェクトによって、壁面と床面の属性が提供されています。

Wall (Object)
座標系の背景の壁面 (com.sun.star.chart.ChartArea サービスをサポート)。
Floor (Object)
座標系の床面パネル (3D グラフのみ。com.sun.star.chart.ChartArea サービスをサポート)。

指定したオブジェクトで com.sun.star.chart.ChartArea サービスをサポートし、通常の塗りつぶしと線の属性を提供します (com.sun.star.drawing.FillProperties サービスおよび com.sun.star.drawing.LineProperties サービスをサポート。「図形描画とプレゼンテーション」参照)。

次のサンプルコードでは、グラフの背景として、Apache OpenOffice に標準で用意されている画像 (名称 Sky) を表示させています。壁面の表示色は、青に設定されています。

Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12

Doc = StarDesktop.CurrentComponent

Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.Area.FillStyle = com.sun.star.drawing.FillStyle.BITMAP
Chart.Area.FillBitmapName = "Sky"
Chart.Area.FillBitmapMode = com.sun.star.drawing.BitmapMode.REPEAT

Chart.Diagram.Wall.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Diagram.Wall.FillColor = RGB(00,132,209)

グラフ軸

Apache OpenOfficeでは、5 種類の軸が認識されグラフに使用できます。通常表示されるのは、X 軸と Y 軸です。3D グラフの中には、Z 軸が表示されるものもあります。また個々のデータ列間が相互に異なる値をもつような場合、Apache OpenOffice では X 軸と Y 軸の第 2 数値軸を表示させることができます。

Diagram オブジェクトには、軸へのアクセス用に、次の属性が用意されています。

HasXAxis (Boolean)
X 軸を有効化する指定。
XAxis (Object)
X 軸に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartAxis サービスをサポート)。
HasXAxisDescription (Boolean)
X 軸のラベルと区切りを有効化する指定。
HasYAxis (Boolean)
Y 軸を有効化する指定。
YAxis (Object)
Y 軸に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartAxis サービスをサポート)。
HasYAxisDescription (Boolean)
Y 軸のラベルと区切りを有効化する指定。
HasZAxis (Boolean)
Z 軸を有効化する指定。
ZAxis (Object)
Z 軸に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartAxis サービスをサポート)。
HasZAxisDescription (Boolean)
Z 軸のラベルと区切りを有効化する指定。
HasSecondaryXAxis (Boolean)
第 2X 軸を有効化する指定。
SecondaryXAxis (Object)
第 2X 軸に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartAxis サービスをサポート)。
HasSecondaryXAxisDescription (Boolean)
第 2X 軸のラベルと区切りを有効化する指定。
HasSecondaryYAxis (Boolean)
第 2Y 軸を有効化する指定。
SecondaryYAxis (Object)
第 2Y 軸に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartAxis サービスをサポート)。
HasSecondaryYAxisDescription (Boolean)
第 2X 軸のラベルと区切りを有効化する指定。

軸の属性

Apache OpenOffice グラフの軸オブジェクトは、com.sun.star.chart.ChartAxis サービスをサポートしています。ここでは文字 (com.sun.star.style.CharacterProperties サービスについては「文書ドキュメント」を参照) および線 (com.sun.star.drawing.LineStyle サービスについては「図形描画とプレゼンテーション」を参照) に関係する属性に加えて、次の属性が用意されています。

スケーリングの属性

Max (Double)
軸の最大値。
Min (Double)
軸の最小値。
Origin (Double)
交差する軸の交点。
StepMain (Double)
軸の区切りの間の距離。
StepHelp (Double)
補助区切りの間の距離 (OpenOffice.org 3.0 以降非推奨。StepHelpCount 属性で代用)。
StepHelpCount (Long)
軸の区切り内の補助区切りの数。たとえば、StepHelpCount を 5 にすると、軸の区切りが 5 つに分かれて、補助区切りが 4 つになります。(OpenOffice.org 3.0 以降で使用可能)。
AutoMax (Boolean)
true の設定で軸の最大値を自動計算。
AutoMin (Boolean)
true の設定で軸の最小値を自動計算。
AutoOrigin (Boolean)
true の設定で原点を自動設定。
AutoStepMain (Boolean)
true の設定で StepMain を自動設定。
AutoStepHelp (Boolean)
true の設定で StepHelpCount を自動設定。
Logarithmic (Boolean)
線形ではなく対数を使用して軸を拡大/縮小。
ReverseDirection (Boolean)
軸の方向を数学的にするか逆方向にするかを指定。(OpenOffice.org 2.4 以降で使用可能)。

ラベルの属性

DisplayLabels (Boolean)
区切りのテキストラベルを有効化する指定。
TextRotation (Long)
100 分の 1 度単位で指定したテキストラベルの回転角。
ArrangeOrder (enum)
ジグザグになる可能性のあるラベルを 2 本の線上に交互に配置する指定 (com.sun.star.chart.ChartAxisArrangeOrderType で定められた値)。
TextBreak (Boolean)
軸ラベル内の行ブレークを許可する指定。
TextCanOverlap (Boolean)
軸ラベルの重ね合わせを許可する指定。
NumberFormat (Long)
軸ラベルで使用する数の書式。
LinkNumberFormatToSource (Boolean)
コンテナドキュメントで与えられた数の書式を使用するか属性 NumberFormat を使用するかの指定。(OpenOffice.org 2.3 以降)。

区切りの属性:

Marks (Const)
軸の区切りの位置の指定 (com.sun.star.chart.ChartAxisMarks に定められた値)。
HelpMarks (Const)
補助区切りの位置の指定 (com.sun.star.chart.ChartAxisMarks に定められた値)。

棒グラフのみ:

Overlap (Long)
パーセント単位で指定した、データ系列間の棒の重なり合い具合 (100 % で棒同士は完全に重なり合い、-100 % で棒の幅分だけの間隔を確保)。
GapWidth (long)
パーセント単位で指定した、各データグループ間の棒の間隔 (100 % で棒の幅分だけの間隔を確保)。

目盛線

軸の主目盛線と補助目盛を、軸の区切りと補助区切りに合わせて表示できます。 Diagram オブジェクトには、目盛線へのアクセス用に、次の属性が用意されています。

HasXAxisGrid (Boolean)
X 軸の主目盛線を有効化する指定。
XMainGrid (Object)
X 軸の主目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。
HasXAxisHelpGrid (Boolean)
X 軸の補助目盛線を有効化する指定。
XHelpGrid (Object)
X 軸の補助目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。

y および z についても同様:

HasYAxisGrid (Boolean)
Y 軸の主目盛線を有効化する指定。
YMainGrid (Object)
Y 軸の主目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。
HasYAxisHelpGrid (Boolean)
Y 軸の補助目盛線を有効化する指定。
YHelpGrid (Object)
Y 軸の補助目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。
HasZAxisGrid (Boolean)
Z 軸の主目盛線を有効化する指定。
ZMainGrid (Object)
Z 軸の主目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。
HasZAxisHelpGrid (Boolean)
Z 軸の補助目盛線を有効化する指定。
ZHelpGrid (Object)
Z 軸の補助目盛線に関する詳細な情報のオブジェクト (com.sun.star.chart.ChartGrid サービスをサポート)。

目盛線のオブジェクトは com.sun.star.chart.ChartGrid サービスに基づいています。このサービスは、com.sun.star.drawing.LineStyle サポートサービスの線の属性をサポートしています (「図形描画とプレゼンテーション」参照)。

軸のタイトル

すべての軸と追加のタイトルを表示できます。 Diagram オブジェクトには、軸のタイトルへのアクセス用に、次の属性が用意されています。

HasXAxisTitle (Boolean)
X 軸のタイトルを有効化する指定。
XAxisTitle (Object)
X 軸のタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。

y および z についても同様:

HasYAxisTitle (Boolean)
Y 軸のタイトルを有効化する指定。
YAxisTitle (Object)
Y 軸のタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。
HasZAxisTitle (Boolean)
Z 軸のタイトルを有効化する指定。
ZAxisTitle (Object)
Z 軸のタイトル (com.sun.star.chart.ChartTitle サービスをサポート)

および第 2 軸に関する詳細な情報のオブジェクト (OpenOffice.org 3.0 以降で使用可能)。

HasSecondaryXAxisTitle (Boolean)
第 2X 軸のタイトルを有効化する指定。
SecondXAxisTitle (Object)
第 2X 軸のタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。
HasSecondaryYAxisTitle (Boolean)
第 2Y 軸のタイトルを有効化する指定。
SecondYAxisTitle (Object)
第 2Y 軸のタイトルに関する詳細な情報のオブジェクト (com.sun.star.chart.ChartTitle サービスをサポート)。

軸タイトルの書式設定に用いるオブジェクトは、グラフタイトルと同様に、com.sun.star.chart.ChartTitle サービスをベースとしています。

次のサンプルコードを実行すると、折れ線グラフが作成されます。ここでグラフの壁面は、表示色を白に設定しています。X 軸および Y 軸に関しては、目盛線を灰色で表示しています。なお Y 軸の最小値を 0、最大値を 100 とするよう明示的に指定してあるため、表示するデータが変更されても、このグラフの表示範囲は固定されたままになります。X 軸は、逆方向で右から左を指しています。X 軸のタイトルが追加されています。

Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12

Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")
Chart.Diagram.Wall.FillColor = RGB(255, 255, 255)
Chart.Diagram.HasXAxisGrid = True
Chart.Diagram.XMainGrid.LineColor = RGB(192, 192, 192)
Chart.Diagram.HasYAxisGrid = True
Chart.Diagram.YMainGrid.LineColor = RGB(192, 192, 192)
Chart.Diagram.YAxis.Min = 0 
Chart.Diagram.YAxis.Max = 100

Chart.Diagram.XAxis.ReverseDirection = true 'needs OpenOffice.org 2.4 or newer
Chart.Diagram.HasXAxisTitle = true
Chart.Diagram.XAxisTitle.String = "Reversed X Axis Example"

3D グラフ

Apache OpenOffice のグラフの多くは、3 次元表示が可能です。Diagram オブジェクトでは、3D グラフに次の属性を利用できます。

Dim3D (Boolean)
3D 表示を有効化する指定。
Deep (Boolean)
系列は、z 方向で互いの後側に配置されます。
RightAngledAxes (Boolean)
X 軸と Y 軸がプロジェクション内で正しい角度を形成する場合に、3D 表示モードを有効化する指定。(OpenOffice.org 2.3 以降で使用可能)。
D3DScenePerspective (Enum)
3D オブジェクトを遠近法のプロジェクション、または並列のプロジェクションのいずれかで描画するかの定義。(com.sun.star.drawing.ProjectionMode で定められた値)。
Perspective (Long)
3D グラフの透視図 ([0,100]) (OpenOffice.org 2.4.1 以降で使用可能)。
RotationHorizontal (Long)
度数で指定する 3D グラフの水平回転 ([-180,180]) (OpenOffice.org 2.4.1 以降で使用可能)。
RotationVertical (Long)
度数で指定する 3D グラフの垂直回転 ([-180,180]) (OpenOffice.org 2.4.1 以降で使用可能)。

次のサンプルコードを実行すると、3D の面グラフが作成されます。

Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12

Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.AreaDiagram")
Chart.Diagram.Dim3D = true
Chart.Diagram.Deep = true
Chart.Diagram.RightAngledAxes = true 'needs OpenOffice.org 2.3 or newer
Chart.Diagram.D3DScenePerspective = com.sun.star.drawing.ProjectionMode.PERSPECTIVE
Chart.Diagram.Perspective = 100 'needs OpenOffice.org 2.4.1 or newer
Chart.Diagram.RotationHorizontal = 60 'needs OpenOffice.org 2.4.1 or newer
Chart.Diagram.RotationVertical = 30 'needs OpenOffice.org 2.4.1 or newer

積み上げグラフ

積み上げグラフとは、複数のデータ系列の値を積み上げる形で表示し、その総和を示すためのグラフです。このグラフを利用すると、各データ系列ごとの値だけでなく、これらの総計も同時に確認できます。

Apache OpenOffice に用意されているグラフの多くは、積み上げグラフによる表示に対応しています。これに該当するグラフ種は、すべて com.sun.star.chart.StackableDiagram サービスをサポートしており、次の属性を使用できます。

Stacked (Boolean)
積み上げ表示モードを有効化する指定。
Percent (Boolean)
絶対値ではなく、百分率分布を表示する指定。


Content on this page is licensed under the Public Documentation License (PDL).


Personal tools