Weka(データマイニングツール)とEspressChartとの連携

Wekaはニュージーランドのワイカト大学において開発されたデータマイニングツールで,分類学習やクラスタリング,相関ルール生成のみならず,データの前処理や視覚化も含む統合型ツールです。Javaで記述されていて、それぞれの機能は他のツールとAPIやCLIを通して利用可能であるため,多くのツールでライブラリとして利用されています。

http://www.cs.waikato.ac.nz/ml/weka/

Weka自体にもグラフ出力機能がありますが、EspressChartと簡単なAPIを作成することにより、EspressChartのチャート機能を利用してWebベースのチャートへ展開することが可能になります。

次のチャートはWekaの標準偏差値ファンクション(平均値、中央値、最頻値)を使用してEspressChartでX軸をタイトルにして出力したものです。

タグ: ,

EspressChartの自動調整機能により決定した値を利用するには

Espress Chartではチャートのスケールの最大値、最小値など、データソースにより変化する値を自動で調整可能です。この調整はチャートを作成する際に行われます。そのため、プログラム等でこの調整された値を利用するためにはファイルを出力しない空exportを実行する必要があります。

たとえば、次のようにスケールの最大値を2倍にするようにAPIから指定したチャートは、空exportがない場合、テンプレートに保存されている調整前の値を2倍しています。

QbChart.setEspressManagerUsed(false);
QbChart chart = new QbChart(parent,              // Applet
QbChart.VIEW2D, // Two-Dimensional
QbChart.COL,         // COL-Chart
“sample.dat”,   // Data File
null,         // Chart info
“test.tpl”);     // template

//最大値の読み取り
float First_Axis_Max =  chart.gethYAxis().getMaxScale().floatValue();
//自動設定不可
chart.gethYAxis().setScaleAutomatic(false);
//Y軸スケールを2倍
chart.gethYAxis().setMaxScale(First_Axis_Max*2.0);

return chart;

下のチャートのように収まっている場合は良いですが、最大値以上の値があるとエラーとなってしまいます。

そのため、次のように空exportを行うことで最新のデータソースを利用したチャートを作成できます。

QbChart.setEspressManagerUsed(false);
QbChart chart = new QbChart(parent,              // Applet
QbChart.VIEW2D,  // Two-Dimensional
QbChart.COL,          // COL-Chart
“sample.dat”,      // Data File
null,             // Chart info
“test.tpl”);      // template

//自動設定を再調整
try { chart.export(); }
catch (Exception ex){ ex.printStackTrace();}
//最大値の読み取り
float First_Axis_Max =  chart.gethYAxis().getMaxScale().floatValue();
//自動設定不可
chart.gethYAxis().setScaleAutomatic(false);
//Y軸スケールを2倍
chart.gethYAxis().setMaxScale(First_Axis_Max*2.0);

return chart;

最大値が2倍になっていることがわかります。

マップとアラート(警告)のサンプル・ギャラリ

(1)EspressDashboardEspressReport ESマップ・サンプル・ギャラリは次のマップ・サンプルを準備しています。

●Weather Map :天気予報マップ
●Customer USA:顧客情報マップ
●Seating Plan:座席予約
●Earthquake:地震状況
●State Population:州別の人口

(2)同じくEspressDashboardEspressReport ESのアラート(警告)・ダッシュ・ボードのサンプルはこちらです。画像をクリックしてください。

どちらもLive viewの「Show」をクリックすることで、オンラインで体験することができます。

タグ: , ,

デザイナー、APIを用いた円グラフの扇の隙間をカスタマイズ

円グラフの扇を間隔をあけて配置することや中心から離して配置することが可能です。

デザイナーの場合チャートの上で右クリックし、”Chart Option”を選択することで下の図の右側のウィンドウが表示されます。設定したい扇(dbase Ⅲ、word、free lance)を選択し、”Sector Gap”で隙間を空けるを選択し、”Distance from origin”に値(20%)を入力すると、左側のように設定されます。

またAPIでは下記のように指定すると同様の設定が行われます。
//Sector Gapを指定
chart.gethPieProperties().setExplodeUsingSectorGap(true);
//扇の指定
chart.gethPieProperties().setExploded(0, false);
chart.gethPieProperties().setExploded(1, true);
chart.gethPieProperties().setExploded(2, false);
chart.gethPieProperties().setExploded(3, true);
chart.gethPieProperties().setExploded(4, false);
chart.gethPieProperties().setExploded(5, true);
//隙間の広さを指定
chart.gethPieProperties().setExplodeRadialPos(0.2f);

 

また、中心から離す場合”Explode”を選択し、”Distance from origin”に値(40%)を入力すると、下のように設定されます。

同様にAPIでは

//Explodeを指定
chart.gethPieProperties().setExplodeUsingSectorGap(true);
//扇の指定
chart.gethPieProperties().setExploded(0, false);
chart.gethPieProperties().setExploded(1, true);
chart.gethPieProperties().setExploded(2, false);
chart.gethPieProperties().setExploded(3, true);
chart.gethPieProperties().setExploded(4, false);
chart.gethPieProperties().setExploded(5, true);
//隙間の広さを指定
chart.gethPieProperties().setExplodeRadialPos(0.4f);

 

 

デザイナー、APIを用いた第1Y軸と第2Y軸の左右入れ替え方法

下の図のようにY軸が二つある場合はSwap Y-axis positionオプションを利用して軸の場所を逆にすることが可能です。

またAPIでこの設定を行う場合は下記のように指定することで同様の設定が可能です。

chart.gethSecondaryChart().setSwapAxis(true);

元のチャート

●Swap Y-axis positionオプションの設定

Y軸上で右クリックし”Axis Properties”をクリック

 

 

 

 

 

Swap Y-axis positionオプションにチェックを入れる

軸が入れ替わっていることがわかります。

 

APIにおける使用するフォントの指定方法

APIで作成したチャートはテンプレート等による指定がなければ

javaで使用されるデフォルトのフォントが使用されます。

使いたいフォントを指定するためには下記のように指定します。
//グラフサイズにフォントサイズを合わせるよう指定
chart.setAdjustFont(true);
//フォントサイズを取得
int fontsize=chart.gethXAxis().gethLabel().getFont().getSize();
//フォントを指定
Font XAxisfont = new Font(“MS 明朝”, Font.PLAIN, fontsize);
//X軸に使用するフォントを指定
//Y軸の場合はgethYAxis().gethLabel()、凡例の場合はgethLegend().gethText()
chart.gethXAxis().gethLabel().setFont(XAxisfont);
//フォントの色を指定
chart.gethXAxis().gethLabel().setColor(Color.blak);

表示例(MS明朝)

 

 

 

 

 

 

表示例(HG正楷書体-PRO)

 

 

 

 

 

APIによるテンプレート無しでのチャート作成方法

APIにおいてもゼロからチャートを作成することは可能です。
ColInfoによる入力データの形式指定とどのようなチャートを作成するか指定することで作成できます。

サンプルコード(チャート作成部のみ)

//EspressManagerを使用しない
QbChart.setEspressManagerUsed(false);

//入力するデータファイルの形式を指定
ColInfo colInfo = new ColInfo();
colInfo.series = 0; //系列が1列目
colInfo.category = 1; //カテゴリが2列目
colInfo.value = 2; //値が3列目

//チャートの作成
QbChart chart = new QbChart
(parent,             // Applet
QbChart.VIEW2D, // 2D、3Dを指定
QbChart.COL,     // チャートの形式を指定
“test.dat”,        // データファイルを指定
colInfo,           // データファイルの形式
null);            // テンプレートを指定(今回は無し)

ColInfoで使用できるデータ形式
日本語訳 名前
カテゴリ category
系列 series
第2系列 subseries
value
第2値 subvalue
累計値 sumBy
X値 xvalue
Y値 yvalue
Z値 zvalue
クローズ close
ハイ high
ロウ low
オープン open
2D、3Dを指定
2次元 QbChart.VIEW2D
3次元 QbChart.VIEW3D
チャートの形式例(表示例はこちらを参考にしてください)
日本語訳 名前
エリアグラフ QbChart.AREA
横棒グラフ QbChart.BAR
縦棒グラフ QbChart.COL
100%縦棒グラフ QbChart.PERCENTCOL
範囲指定横棒グラフ QbChart.BOX
ガントチャート QbChart.GANTT
ゲージ QbChart.DIAL
ドーナッツ型グラフ QbChart.DOUGHNUT
円グラフ QbChart.PIE
high-lowグラフ QbChart.HILOW
HLCOチャート QbChart.HLCO
折れ線グラフ QbChart.LINE
バブルグラフ QbChart.BUBBLE
ポーラーチャート QbChart.POLAR
レーダーチャート QbChart.RADAR
散布図 QbChart.SCATTER


EspressReport ESのトレーニング資料をアップロードしました。

EspressReportESのはじめ方から、各機能の使い方を説明したトレーニング資料を
アップロードしました。

ダウンロードはこちら

全てのトレーニング資料があるわけではありませんが、順次追加されます!
現在のトレーニング資料は下記の通りです。

実習01 ERESをはじめるために
実習02 ユーザ・グループの作成
実習03 Organizerの起動
実習04 データレジストリの作成
実習05 JDBCデータソースのセットアップ
実習06 クエリビルダーによるクエリの作成
実習07 SQL文の入力
実習08 クエリパラメータの追加
実習09 複数の値のクエリパラメータを追加
実習10 データビューの作成
実習11 クエリデータビュー
実習12 XMLデータソースのセットアップ
実習13 XMLクエリの作成
実習14 テキストデータソースのセットアップ
実習15 Javaクラスデータソースのセットアップ
実習37 リッチ・テキスト・フォーマットを使用した通知書を含む明細書の作成
実習38 リッチテキストに対するコラム・レイアウト(段組)の適用
実習39 サブレポートの追加
実習40 サブレポート連携の作成
実習41 ドリルダウンレポートの作成
実習42 日付の変数パラメータ作成
実習43 タスク・スケジュールの作成
実習44 アーカイブの作成
実習45 QuickDesignerによるレポートの作成
実習47 ダッシュボードの作成
実習48 SVGマップの作成
実習49 座標(Coordinates)ファイルの作成
実習50 Googleマップの作成
実習51 アラートの作成
実習52 アラートの表示
実習53 アラート監視

 

 

タグ:

チャートエリア(プロット)を移動させるためのJava API

チャートエリア(プロット)はチャートデザイナにて手動で移動することも可能ですが、Java APIから動的に移動させることも可能です。

サンプルAPIは下記となります。

// ポジション設定
Position position = chart.gethChartPlot().getPosition();
System.out.println(“POS X = ” + position.getX() + “, Y = ” + position.getY());
Position pos = new Position(0.1f, 0.1f);
chart.gethChartPlot().setPosition(pos);

Positionクラスを使用すれば、プロットだけでなく他の要素(たとえば凡例など)を動的に移動させることも可能です。

EspressChartのAPIを使用してのチャートの色やプロットの形を指定する方法【Javaチャート・グラフ作成ツールEspressChart】

EspressChartのAPIを使用してのチャートの色やプロットの形を指定するプログラムのサンプルを紹介します。

■コードサンプル

・色指定方法
Color[] color = { Color.green, Color.red, Color.blue, Color.BLACK, Color.orange};
※色の配列を作成

チャート名.gethDataPoints().setColors(color);
※色の配列にしたがい系列の指定

・プロットの形、指定方法
int[] shape = { QbChart.PLUS, QbChart.CIRCLE, QbChart.SQUARE, QbChart.DASH, QbChart.TRIANGLE};
※形の配列を作成

チャート名.gethDataPoints().setPointShapes(shape);
※形の配列にしたがい系列の指定

■表示サンプル