Espressシリーズで棒グラフを作成すると系列ごとに色分けされます。
これを個別に設定する場合にはFormat > Chart Optionsから”Unique Color Column”の設定を行います。
そして、それぞれの棒に対して色を設定することで下のように個別に設定が行えます。
このような設定は同様にAPIからも実施可能です。
APIから設定する場合に”Unique Color Column”の設定に対応するものが以下のAPIとなります。
//個別の棒に対する色の設定を有効化
chart.gethDataPoints().setUniqueColumnColorForColumnChart(true);
//カテゴリごとの色の統一を無効化
chart.gethDataPoints().setSingleColorForCategories(false);
これを使用することで以下のようにAPIからも個別に色を設定できます。
———–チャート作成サンプル——————————————-
QbChart.setEspressManagerUsed(false);
ColInfo colInfo = new ColInfo();
colInfo.series = -1;
colInfo.category = 0;
colInfo.value = 1;
String[] dataType = { “varchar”, “decimal” };
String[] fieldName = { “日”, “料金” };
String[][] records = { { “今日”, “1000” }, { “明日”, “1200” }, { “明後日”, “1350” } };
DbData data = new DbData(dataType, fieldName, records);
QbChart chart = new QbChart(parent, QbChart.VIEW2D, QbChart.COL, data, colInfo, null);
chart.gethDataPoints().setUniqueColumnColorForColumnChart(true);
chart.gethDataPoints().setSingleColorForCategories(false);
Color[] colors = { Color.red, Color.green, Color.blue };
chart.gethDataPoints().setColors(colors);
——————————————————————
———–チャート作成サンプル——————————————-
QbChart.setEspressManagerUsed(false);
ColInfo colInfo = new ColInfo();
colInfo.series = 1;
colInfo.category = 0;
colInfo.value = 2;
String[] dataType = { “varchar”, “varchar”,”Integer” };
String[] fieldName = { “日”,”飲み物”,”売り上げ” };
String[][] records = {
{ “今日”,”キウイ”, “800” }, { “今日”,”オレンジ”, “1500” }, { “今日”,”マンゴー”, “1230” },
{ “明日”, “キウイ”,”1200″ }, { “明日”, “オレンジ”,”900″ }, { “明日”,”マンゴー”, “850” },
{ “明後日”,”キウイ”,”1350″ },{ “明後日”,”オレンジ”,”950″ }, { “明後日”,”マンゴー”,”1200″ } };
DbData data = new DbData(dataType, fieldName, records);
QbChart chart = new QbChart(parent, QbChart.VIEW2D, QbChart.COL, data, colInfo, null);
// 色の設定を系列ではなく各棒ごとに行うよう設定
chart.gethDataPoints().setUniqueColumnColorForColumnChart(true);
chart.gethDataPoints().setSingleColorForCategories(false);
//データの項目数に合わせ色の配列を作成
Color dataColors[] = new Color[chart.gethInputData().getRowCount()];
try {
//各項目の値に合わせて色を設定
for(int i=0;i<chart.gethInputData().getRowCount();i++){
if((Integer)chart.gethInputData().getRow(i).getObject(3)<=1000){
dataColors[i]=Color.GREEN;
}
else{
dataColors[i]=Color.RED;
}
}
} catch (Exception e) {e.printStackTrace();}
//色の設定
chart.gethDataPoints().setColors(dataColors);
——————————————————————
関連するトピックス:
- Ver5からのフォントサイズ【Javaチャート・グラフ作成ツールEspressChart】
- 画像を用いた独自パターンの作成方法
- EspressChartのAPIを使用してのチャートの色やプロットの形を指定する方法【Javaチャート・グラフ作成ツールEspressChart】
- APIによるテンプレート無しでのチャート作成方法
- 「EspressManager」を使用しない場合【Javaチャート・グラフ作成ツールEspressChart】
- デザイナー、APIを用いた円グラフの扇の隙間をカスタマイズ
- 背景色の設定(Java実行時)【Javaチャート・グラフ作成ツールEspressChart】
- 同一シリーズからのチャートでの個別な色使用 Ver5.0【Javaチャート・グラフ作成ツールEspressChart】
- Javaオブジェクト/アレー データとEJB【Javaチャート・グラフ作成ツールEspressChart】
- Y軸を無視してただの文字項目として扱うこと方法?【Javaチャート・グラフ作成ツールEspressChart】