画像(キャンバス)サイズを変えずにグラフのみサイズを変える方法[EspressChart]


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();
		}
	}
}

関連するトピックス:

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください