EspressChartでは、キャンバスオプションにて出力時の画像(キャンバス)サイズを調整することが可能となっており、そのサイズを変更することで、グラフもそれに合わせてサイズ調整されます。ただ、場合によっては、キャンバスサイズはそのままにグラフのサイズのみ変更して余白を少なくしたいという要望もあるかと思います。そのような場合もEspressChartでは対応可能です。
チャートデザイナからグラフサイズを変更するには、グラフを右クリックしたままマウスの位置を調整することで、キャンバスサイズをいじらずともグラフサイズを調整可能です。位置がずれた分は左クリックしたままマウスの位置を調整することで、グラフの位置を動かすことで可能です。
APIからグラフサイズを調整する場合は、setRelativeHeightメソッドとsetRelativeWidthメソッドを使用します。これらのメソッドはキャンバスの縦幅/横幅を1ととした場合のグラフの縦幅/横幅の比率を指定することができます。
※setRelativeHeightメソッドとsetRelativeWidthメソッドはグラフサイズの調整のみでグラフ位置は自動で調整されないため、setPositionメソッドで位置を指定する必要があります。
サンプルコード
import java.applet.Applet;
import java.awt.Dimension;
import quadbase.util.*;
import quadbase.ChartAPI.QbChart;
public class SaveFile extends Applet {
static final long serialVersionUID = 1;
public static void main(String[] args) {
try {
SaveFile file = new SaveFile();
file.doExportChart(null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
void doExportChart(Applet parent) {
String filename = "cht/sampleChart1.cht";
String savefile = "image/exportChart_20230901.png";
QbChart.setEspressManagerUsed(false);
QbChart chart = new QbChart(parent, filename);
Dimension dim = new Dimension(800, 600);
chart.gethCanvas().setSize(dim);
chart.gethChartPlot().setRelativeHeight(.60f);
chart.gethChartPlot().setRelativeWidth(.80f);
chart.gethChartPlot().setPosition(new Position(.10f, .20f));
try {
chart.export(QbChart.PNG, savefile);
System.out.println("Success");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
関連するトピックス:
- 異なるフラットフォームでチャートサイズを正確にコントロールする方【Javaグラフ作成ツールEspressChart】
- 背景色の設定(Java実行時)【Javaチャート・グラフ作成ツールEspressChart】
- API上でロケールやフォーマットを指定する方法[EspressChart]
- Exportメソッドの同期化【Javaチャート・グラフ作成ツールEspressChart】
- APIにおける使用するフォントの指定方法
- EspressChartでDB・テキストファイルから動的グラフ作成(コーディングいらずでGUIから簡単操作編)
- JPEGやPNGの圧縮率を変えて画質の違いを確認してみました【Javaチャート・グラフ作成ツールEspressChart】
- グラフや凡例のシンボル(マーカー)の種類とサイズ指定【Javaチャート・グラフ作成ツールEspressChart】
- フリーラベル機能(テキスト挿入)【Javaチャート・グラフ作成ツールEspressChart】
- ホーミュラーパラメータをサブレポート渡す方法【Java対応レポート・帳票ツールEspressReport】