チャートの例:詳細

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > XML > チャート >

チャートの例:詳細

以下の XML ドキュメントを考えてみましょう。このファイルは YearlySales.xml というファイル名で C:\Documents and Settings\<ユーザー名>\マイ ドキュメント\Altova\XMLSpy2019\Examples\Tutorial に収められています。

 

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

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

      xsi:noNamespaceSchemaLocation="YearlySales.xsd">

 <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>

 

ここで、X-軸に年が表示され、毎年ごとに地域間の年間売上比較を行えるようなグラフを作成します。グラフは以下の棒グラフにあるようなものになります。

ChartYAxis02

このグラフを作成する2つの方法を説明します。これら2つの説明を通して、異なるデータ選択パラメーターを組み合わせることで目的のグラフを作成する方法を学習します。

 

方法その1:軸の値を変更

最初の方法では、列の選択ダイアログにて選択された軸をデータの選択ダイアログにて修正します。ここで注意しなければならない唯一のことは、必要なデータは全てデータの選択ダイアログのチャートデータテーブルにて使用可能になっているということです。

 

1.列の選択ダイアログにて、必要な全てのノードが X-軸、Y-軸として選択できる状態であることを確認してください。以下のスクリーンショットにて、列検索階層が2にセットされていることに注目してください。これで Year/@id 属性を選択することができるようになります。

ChartEx2ColSelect

2.(以下のスクリーンショットにある)データの選択ダイアログにて、チャートデータテーブルには以下の列が含まれています:最初の列が X-軸の選択(自動列挙した選択)で、その他の列が、Region/@idYear 要素のコンテンツ、そして Year/@id 属性からなる、系列(Y-軸)の列。以下の 2 つの点に注意してください: (i) テーブルには 3 つの行しか存在せず、X-軸の要素数は 3 つになります(しかし我々が X-軸にほしいのは 6 年分の(つまり 6 つの)要素です)。(ii) 系列には 13 の列があります。

ChartEx2DataSelect

3.系列ペインでは、13 あるうちの系列行のうち、任意の 10 個を削除し、残った 3 つの名前を、スクリーンショットにあるように AmericaEuropeAsia に変更します。ここで選択された順序が X-軸の要素にて表示されるラベルの順序になります。
4.系列ペインにて、America の系列を選択します。軸の値ペインにて X-軸のテキストボックスをクリックして、修正を開始します。チャートデータテーブルの I1 をクリクして、そのまま N1 までドラッグします。Y-軸テキストボックスにて Cl:H1 と入力するか、ドラッグすることでチャートデータテーブルの C1 から H1 までを選択します。
5.Europe と Asia の系列に対しては、C2:H2 ならびに C3:H3 をそれぞれ Y-軸に対して選択します。X-軸の選択は America の場合と同様になります。
6.「OK」 をクリックすると、目的のグラフが生成されます。

 

メモX-軸のラベル数が6になったため、、(チャートデータテーブルにある行の数からデフォルトで定義された)X-軸の要素も 3 から 6 に増加します。

 

方法その2:XPath 条件式により系列を生成する

2つめの方法では、系列の生成のために XPath 条件式を挿入します。これは、目的の系列に対応するノードを、(以下のスクリーンショットにあるように)ソース XPath が子孫として持たないために必要な操作となります。それでもソース XPath は6つの X-軸要素を(最初の Region 要素の Year 要素を選択することで)生成します。かっこの [1] により、最初の Region 要素を選択するには、インデックスに含める チェックボックスを有効にして、列の更新ボタンをクリックしてください。

ChartEx1ColSelect

列の選択ダイアログにて、Region[1]/Year 要素は、@idtext() という2つの子孫しか持っていないことが確認できます。@id 属性を X-軸に選択し、6つの X-軸要素に対して、正しい X-軸のラベルを生成するようにします。チャートデータテーブルは以下のように評価されます:

 

ソース XPath

X-軸

Y-軸(系列列)

Region[1]/Year[1]

@id

text()

XPath-1

XPath-2

Region[1]/Year[2]

@id

text()

XPath-1

XPath-2

Region[1]/Year[3]

@id

text()

XPath-1

XPath-2

Region[1]/Year[4]

@id

text()

XPath-1

XPath-2

Region[1]/Year[5]

@id

text()

XPath-1

XPath-2

Region[1]/Year[6]

@id

text()

XPath-1

XPath-2

 

コンテキストノードが、6つある Region[1]/Year 要素の各ノードになっていることに注目してください。(スクリーンショットに表示されている)最初の XPath 条件式は、現在の Year/@id 属性値を探し、現在の Region[1]/YearYear@id と同じ Year/@id 値を持つ Region[2]/Year 要素を返します。2つめの XPath 条件式は同じことを Region[3]/Year 要素に対して行ないます。この方法を使えば、6つある各年に対して、Y-軸の系列は、各 Region 要素の Year 子要素となります。text() ノードを使うことで、Region[1]/Year 要素のコンテンツが返されます。

 

データの選択ダイアログのチャートデータテーブルは以下のようになります。

ChartEx1DataSelect

データの選択ダイアログの系列の表示を XPath 条件式から、(以下のスクリーンショットにあるような)意味の分かる凡例に変更します。軸の値ペインを使うことで、正しいデータ列を各系列に対して割り当てることができます(Y-軸のテキストボックスをクリックして、チャートデータテーブル内にある目的の列を選択します)。

ChartEx1DataSelectSerMod

上で紹介した2つの方法により、全く同じチャートが作成されます。ここでは2つの異なるアプローチを紹介することで、データ選択パラメーターの使用方法について説明しました。

 


(C) 2018 Altova GmbH