#pragma section-numbers off [[TableOfContents]] = 関連サイト = [http://www.jfree.org/jfreechart/ JFreeChart project] ([wiki:sfnet/jfreechart JFreeChart project]) [http://homepage.ntlworld.com/richard_c_atkinson/jfreechart/ JFreeChartのサンプルプログラム] [http://cewolf.sourceforge.net/ cewolf:JFreeChart用Tag Lib] [http://www.bosrup.com/web/overlib/ Overlib:ToolTipを作成しているライブラリ] [http://taka-2.com/zakki/20020603.html 日本語の数少ない説明の一つ] = 概要 = ["JFreeChart"]はJavaで実装されたChartを作成するためのLGPLなライブラリです。便利です。 {{{JClassServerChart}}}という商用の製品がありますが、それよりも楽だったりします。欠点はあまり日本語の事考えてない事ぐらいです。 = サンプルコード = == 3D円グラフ == {{{ // for Servlet API import javax.servlet.*; import javax.servlet.http.*; import java.io.*; // for jCharts API import com.jrefinery.chart.*; import com.jrefinery.chart.data.*; import com.jrefinery.chart.ui.*; import com.jrefinery.data.*; import com.jrefinery.ui.*; public class Pie3DChartSample extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { try { // Content-TypeをPNGに設定 res.setContentType("image/png"); // データの構築 DefaultPieDataset piedataset = new DefaultPieDataset(); piedataset.setValue("4月", Integer.valueOf("10")); piedataset.setValue("5月", Integer.valueOf("30")); piedataset.setValue("6月", Integer.valueOf("40")); // グラフの構築 (最後のブーリアンは、凡例を表示するかどうか) JFreeChart chart = ChartFactory.createPie3DChart("アクセス解析", piedataset, true); // グラフの書き出し OutputStream ostream = res.getOutputStream(); ChartUtilities.writeChartAsPNG(ostream, chart, 400, 300); ostream.close(); } catch(Exception e) { e.printStackTrace(); } } } }}} == イメージマップ == ほぼサンプルそのままです。 {{{ // for Servlet API import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.awt.*; // for jCharts API import com.jrefinery.chart.*; import com.jrefinery.chart.data.*; import com.jrefinery.chart.ui.*; import com.jrefinery.chart.urls.*; import com.jrefinery.chart.entity.*; import com.jrefinery.data.*; public class ImageMapSample extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { try { // データの構築 DefaultPieDataset piedataset = new DefaultPieDataset(); piedataset.setValue("4月", Integer.valueOf("10")); piedataset.setValue("5月", Integer.valueOf("30")); piedataset.setValue("6月", Integer.valueOf("40")); // チャート作成 PiePlot plot = new PiePlot(piedataset); plot.setInsets(new Insets(0, 5, 5, 5)); plot.setURLGenerator(new StandardPieURLGenerator("../chartdetail.jsp")); JFreeChart chart = new JFreeChart("Pie Chart Sample", JFreeChart.DEFAULT_TITLE_FONT, plot, true); // チャートの背景色設定 chart.setBackgroundPaint(java.awt.Color.white); // チャートの書き出し ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); ServletContext context = getServletConfig().getServletContext(); File file1 = new File(context.getRealPath("/") + "/piechart.png"); ChartUtilities.saveChartAsPNG(file1, chart, 400, 400, info); PrintWriter out = res.getWriter(); // Content-Typeを設定 res.setContentType("text/html"); out.println(""); out.println("
" + tmpdir.getAbsolutePath() + "
"); //out.println("" + context.getRealPath("") + "
"); ChartUtilities.writeImageMap(out, "chart", info); out.println("