EspressChartでは複数のデータソースを読み込みし、チャートを生成できます。この機能はデータソースとなるファイルが複数に分かれている場合や、異なるデータベースをデータソースとして、一つのチャートを生成したい場合に便利です。
チャートデザイナーの場合は新規でチャートを作成する際のデータソースの指定で、一つ指定した後に「Get Other Data Source」で別のデータソースを指定してというように複数のデータソースを指定できます。
このチャートデザイナーで作成したテンプレートファイルを使用してQbChartコンストラクタでチャートを生成する際に、それに含まれるデータソースへの接続(参照)情報を利用できるのであれば、そのままチャートを生成できます。
しかし、別の環境でチャートを生成する場合など、別のデータソースを指定しなおす必要がある場合には、データソースを指定しなおす必要があります。ただ、これにはQbChartコンストラクタのみでは対応できず、setDataFileメソッドなどでデータソースを指定して場合、上書き扱いとなるため、1つのデータソースしか指定できません。
APIから読み込み場合には、上記の方法ではなく、DataSheetコンストラクタを利用します。
複数のデータソースをマージする機能を提供するクラスであり、これで各種データソースを読み込み、DataSheet配列をQbChartコンストラクタで使用することでAPIからも複数のデータソースを読み込み、チャートに適用できます。
使用例
//データソースのファイルパス String dataFilePath1="./data/2020.txt"; String dataFilePath2="./data/2021.txt"; //DataSheetを作成 DataSheet dataSheet1= new DataSheet(parent, dataFilePath1 ,false); DataSheet dataSheet2= new DataSheet(parent, dataFilePath2 ,false); //配列にしてマージ DataSheet[] dataSheet= {dataSheet1, dataSheet2}; //テンプレートファイルのパス String templatePath = "./chart/multi.tpl"; //読み込み時に転置する列を指定する配列 int[] transposeCol = {1,2,4,5}; //読み込み時の列の対応付けを指定する配列 ColInfo cmap = new ColInfo(); cmap.series = 2; cmap.category = 0; cmap.value = 3; //DataSheet配列をデータソースとしてチャートを作成 QbChart chart = new QbChart(parent, QbChart.VIEW2D, QbChart.COL, dataSheet, true, transposeCol, cmap, templatePath);
上記の例では、2つのデータソースファイルを読み込み、マージ後のデータに対して転置を指定しています。
そうではなく、個別のDataSheetでメソッドを使用して行の追加(addRow)や削除(deleteRow)、更新(updateRow)、転置(transpose)なども実施できますので、データソースをDataSheetとして読み込み、個別に調整したあと、マージするといったことも可能です。
関連するトピックス:
- 複数のデータソースの利用 (Ver6.0)【Javaチャート・グラフ作成ツールEspressChart】
- Javaから直接データソースを指定する【Javaチャート・グラフ作成ツールEspressChart】
- クロス表からのグラフの作成【動的なWebチャートを作成・配信するJAVAツール:EspressChart】
- XMLとXBRLファイルからのデータ取得【Java対応レポート・帳票ツールEspressReport】
- Excelから任意のセルを指定して簡単にグラフを作成 – EspressChart
- Javaで作成したソースデータをチャートデザイナで使う方法
- 画像を用いた独自パターンの作成方法
- XMLファイルから天気予報のダッシュボードを作成② ―グラフ作成編―
- Salesforce(セールスフォース)からデータを取り込み、独自グラフ、レポート、ダッシュボードを作成, Webに展開
- EspressManager.shの文字コード設定について【Javaチャート・グラフ作成ツールEspressChart】