XMLファイルからチャート生成のためのデータを読み込む(JFreechart 0.9.21)
JFreeChartには,XMLファイルからチャート生成のためのデータを読み込むためのクラスがある.0.9.21ではCategoryDatasetとPieDatasetのみのサポートだが,Seriesもサポートされているようである.
XMLファイルからデータを読み込むクラスはorg.jfree.data.xml.DatasetReaderである.このクラスの使用方法は簡単である.以下にサンプルを示す.
ポイントは
- DatasetReader#readCategoryDatasetFromXML
- DatasetReader#readPieDatasetFromXML
DatasetReaderを使用するうえで若干問題となったのは,XMLファイルである.DTDが見当たらないので,ソースを解析して以下のデータのサンプルを導き出した.
<CategoryDataset> <Series name="Series1"> <Item><Key>Key11</Key><Value>11</Value></Item> <Item><Key>Key12</Key><Value>12</Value></Item> <Item><Key>Key13</Key><Value>13</Value></Item> <Item><Key>Key14</Key><Value>14</Value></Item> </Series> <Series name="Series2"> <Item><Key>Key21</Key><Value>21</Value></Item> <Item><Key>Key22</Key><Value>22</Value></Item> <Item><Key>Key23</Key><Value>23</Value></Item> <Item><Key>Key24</Key><Value>24</Value></Item> </Series> </CategoryDataset>これを先のサンプルで読み込んでみた.
$ java -cp jfreechart-0.9.21.jar:jcommon-0.9.6.jar:gnujaxp.jar:./:$CLASSPATH SampleReadFromXML pie_sample.xml category
PieDatasetに関しても同様に作業してみた.といっても,ソースはCategoryDatasetの場合とPieDatasetの場合ではソースはほとんど重複している(※).
<PieDataset> <Item><Key>Key11</Key><Value>11</Value></Item> <Item><Key>Key12</Key><Value>12</Value></Item> <Item><Key>Key13</Key><Value>13</Value></Item> <Item><Key>Key14</Key><Value>14</Value></Item> <Item><Key>Key21</Key><Value>21</Value></Item> <Item><Key>Key22</Key><Value>22</Value></Item> <Item><Key>Key23</Key><Value>23</Value></Item> <Item><Key>Key24</Key><Value>24</Value></Item> </PieDataset>これを先のサンプルで読み込んでみた.
※ 意味や生成されるチャートがどうなるかは別として,ルート要素意外は同じコードである.

