JFreeChart – グラフの余白を設定するには
グラフの余白を設定するには、JFreeChartクラスのsetPaddingメソッドを使用します。
package net.tk_factory.sample.jfreechart.chart; import java.io.FileOutputStream; import java.io.IOException; import net.tk_factory.sample.AbstractSample; import org.apache.log4j.Logger; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.data.general.DefaultPieDataset; import org.jfree.ui.RectangleInsets; /** * JFreeChartを使用したサンプルプログラムです。<br/> * <br/> * <b>内容</b> * <ol type="1"> * <li>グラフの余白を設定します。</li> * </ol> * * @author Takafumi Kondo (TK Factory) */ public class SampleSetPadding extends AbstractSample { /** クラス名 */ private static final String CLASS_NAME = SampleSetPadding.class.getSimpleName(); /** ロガー */ private static final Logger LOGGER = Logger.getLogger(SampleSetPadding.class.getName()); /** 出力ファイル名(PNG形式) */ private static final String OUT_FILE_NAME_PNG = SAMPLE_FILE_DIRECTORY + CLASS_NAME + ".png"; /** * SampleSetPaddingオブジェクトを構築すると、 * UnsupportedOperationExceptionがスローされます。<br/> */ protected SampleSetPadding() { throw new UnsupportedOperationException(); } /** * mainメソッドです。<br/> * * @param args 引数 */ public static void main(String[] args) { LOGGER.info("[START]" + CLASS_NAME); FileOutputStream png = null; try { //すでに出力ファイルが存在している場合は削除する deleteExistsFile(OUT_FILE_NAME_PNG); //レガシーテーマを設定する ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme()); //円グラフのデータを設定する DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("支持する", 14.3); dataset.setValue("どちらでもない", 70.1); dataset.setValue("支持しない", 15.6); //円グラフを生成する JFreeChart chart = ChartFactory.createPieChart( //・グラフタイトル "内閣支持率", //・データセット dataset, //・凡例の表示有無 true, //・ツールチップの表示有無 false, //・URL動的生成の有無 false); //グラフの余白を設定する RectangleInsets insets = new RectangleInsets( //・上 5d, //・左 10d, //・下 15d, //・右 20d); chart.setPadding(insets); //PNG形式でファイルへ保存する png = new FileOutputStream(OUT_FILE_NAME_PNG); ChartUtilities.writeChartAsPNG(png, chart, 600, 400); } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } finally { try { if (png != null) { png.close(); } } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } LOGGER.info("[E N D]" + CLASS_NAME); } } }
関連記事
コメント 0