チャートデータの選択: フレキシブル

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: コンテンツ > チャート >

チャートデータの選択: フレキシブル

チャート構成ダイアログ にあるチャートデータセレクターでは、フレキシブルオプションを選択することで XPath 条件式を使った系列の軸(Z-軸)、X-軸、そして Y-軸に使われるデータの選択を行うことができます(以下のスクリーンショットを参照)。各軸に対して使用される XPath 条件式により返されたアイテムのシーケンスが、その軸にてプロットされます。全ての軸に対する(アイテムの)シーケンスが収集されることでチャートが生成されます。

 

ChartDataSelectorOview

 

以下の点に注意してください:

 

系列とは、X-軸(カテゴリー軸)目盛りのセットに対してプロットされた系列のことを指します。2番目の系列は、同じ X-軸の目盛り上にあに対してプロットされます。例えば、X-軸には2008、2009、2010年が表されており、Y-軸には売上高が表されている場合、系列1では America(3年間のアメリカにおける売上高)が示され、系列2では Europe(3年間のヨーロッパにおける売上高)示されます。棒グラフによりデータが表示される場合、X-軸にこれら3年(2008、2009、2010)が表示され、各年に2個の棒(アメリカとヨーロッパ)が表示されます。円グラフと単一の棒グラフの場合、選択できる系列は1つだけとなります。各種チャートの詳細な情報については、 各種チャートのテーブル を参照ください。
For-Each カラムに入力された XPath 条件式により、その他3つの XPath 条件式の評価に使用されるコンテキストを与えることができます。For-Each XPath 条件式そのものも、ノードが挿入されたデザインの位置により評価されます。

 

以下の例では、軸に対してデータの選択を行う際に考慮すべき重要な点を説明します。以下に示される XML ドキュメントを使用します。

 

Click to expand/collapse listingXML file used in charts example: YearlySales.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

      xsi:noNamespaceSchemaLocation="YearlySales.xsd">

 <ChartType>Pie Chart 2D</ChartType>

 <Region id="Americas">

         <Year id="2005">30000</Year>

         <Year id="2006">90000</Year>

         <Year id="2007">120000</Year>

         <Year id="2008">180000</Year>

         <Year id="2009">140000</Year>

         <Year id="2010">100000</Year>

 </Region>

 <Region id="Europe">

         <Year id="2005">50000</Year>

         <Year id="2006">60000</Year>

         <Year id="2007">80000</Year>

         <Year id="2008">100000</Year>

         <Year id="2009">95000</Year>

         <Year id="2010">80000</Year>

 </Region>

 <Region id="Asia">

         <Year id="2005">10000</Year>

         <Year id="2006">25000</Year>

         <Year id="2007">70000</Year>

         <Year id="2008">110000</Year>

         <Year id="2009">125000</Year>

         <Year id="2010">150000</Year>

 </Region>

</Data>

 

 

1つの行に1つの系列

Region 要素に対して 2D の円グラフを作成するとします(Americas、Europe、Asia という3つの要素が該当します)。デザイン内の Region 要素内にチャートを作成することにしましょう。これにより、チャートデータセレクターの For-Each XPath 条件式で使用されるコンテキストノードは Region 要素となります。

 

ChartDataSelectorOview

 

上のスクリーンショットで示されるデータ選択を行うと、For-Each 条件式によりカレントノード(つまり Region 要素)が返され、Region 要素が(系列、X-軸、Y-軸における)その他 XPath 条件式で使用されるコンテキストノードとなります。このチャートで使用される系列は1つだけで、系列名を入力する必要は無いため、系列名のカラムはそのままにしておきます。X-軸には6個の値が返されるため、X-軸における目盛りの数は6となり、シーケンスにある6個のアイテムが、それぞれ X-軸のラベルとして使用されます。Y-軸にも6個のアイテムが返され、対応する X-軸の目盛りにてそれぞれプロットされます。チャートは Region 要素内部で作成されたため、XSLT エンジンにより3つの Region 要素が読み込まれ、各 Region 要素に対応した3つのチャートが作成されます。各チャートでは、対応する Region 要素の子孫ノードが使用されます。

 

Americas に対するチャートは以下のようになります:

 

ChartBar2DAmericas

 

1つの行に3つの系列、カテゴリー値のマージ無し

以下のスクリーンショットで示されるように、新たな行をチャートデータセレクターに追加することで、複数の系列を作成することができます。

 

ChartDataSelFlex02

 

上記のデータ選択にて注目すべき点を以下に示します:

 

各行により系列が表され、(チャートは Region ノード内部で作成されるため)全ての行では Region 要素がコンテキストノードとして使用されます。
最初の行では、系列名のカラムに示されている通り Americas 系列が定義されます。X-軸の値を選択するには Europe の Year/@id 値が使用されていますが、全ての地域で同じ Year/@id 値が使用されているため、どの地域が選択されているかは重要ではありません。最初の系列 (Americas) における Y-軸の値には、フィルターにより Americas の値が選択されています。
プションがチェックされていないため、2番目と3番目の条件式は無視されます(各系列で使用されている値は同じものなので、マージオプションが有効になっていても結果は変わりません。カテゴリー値には新しい値だけが追加されます)。2番目ならびに3番目の行でも、最初のシリーズで使われた方法がそのまま使用されます。X-軸に対する選択には同一の条件式が使用されていますが、カテゴリー値をマージオ

 

上記のデータ選択により生成されるグラフを以下に示します:

 

ChartBar2DSeries

 

1つの行に3つの系列、カテゴリー値のマージ有り

この例におけるデータ選択はこれまでの例と違い、(i) X-軸における3番目の系列に新たなアイテム (2011) が追加され、(ii) カテゴリー値のマージオプションが有効になっています。更に、 Y-軸の目盛り間隔 も手動で 20,000 にセットされています。

 

ChartDataSelFlex02Merge

 

この変更により、X-軸に新たなアイテムの 2011 が追加されます。生成されるグラフを以下に示します:

 

ChartDataSelFlex02MergeShot

 

1つの行で3つの系列を表示する

これまでの例と違い、この例では Region ノード内にチャートを作成するのではなく、1つ上位のノードである Data ノードにてチャートを作成します(上記の XML ドキュメントを参照ください)。データ選択に使用される行は1つだけですが、3つの系列が生成されます。これは For-Each カラムにある XPath 条件式により3つのアイテムのシーケンスが返されるためで、暗黙的に3つの系列が作成されます。

 

ChartDataSelFlex03

 

各系列に対して、対応する Region 要素がコンテキストノードとして扱われるため、それぞれの地域に対応した系列名、X-軸、Y-軸の選択が行われます。このデータ選択により生成されるグラフを以下に示します:

 

ChartBar2DSeries

 

チャートのデータ選択におけるルール

チャートデータセレクターを使ったデータの選択を行う場合、以下の点に注意する必要があります:

 

1.表示される棒(または円グラフのスライス)の数は、チャートデータセレクターの行から得られる X-軸または Y-軸のシーケンスアイテムのうち、より大きな方の数となります。そのため、X-軸に5個のアイテムがあり、(値が表示される)Y-軸に6個のアイテムがある場合、最後の棒にラベルが無い状態で6本の棒がプロットされます。X-軸に6個のアイテムがあり、Y-軸のアイテムが5個である場合、6本の棒がプロットされ、最後の棒は値を持たないラベルだけの出力となります。
2.For-Each カラムにある条件式により得られたシーケンスの合計アイテム数が、表示される系列の数になります。
3.系列の名前は、Z-軸(または系列名の軸)における XPath 条件式により選択されます。データ選択行にてこの XPath 条件式が指定されない場合、系列名は作成されません。XPath 条件式により返されるシーケンスの数が、系列の数より少ない場合、該当しない系列には名前が与えられないことになります。

 

フレキシブルオプションにてどのようにデータが選択されるのかの詳細については、以下のセクションを参照ください:

 

データ選択を行う編集可能な Authentic 変数ゲージ のセクションも参照ください
複雑なデータ選択を行う XPath 条件式
系列軸を使ったグループ化された棒グラフの生成
系列軸を使用した折れ線グラフの生成
XPath 条件式から得られたリテラルシーケンスを値として扱う
Java と .NET 関数の使用

 

 

 


(C) 2019 Altova GmbH