- PR -

JFreeChart:データベースから折れ線グラフを作る

1
投稿者投稿内容
ぎどら
会議室デビュー日: 2007/11/13
投稿数: 5
投稿日時: 2007-11-13 13:46
はじめまして.
JFreeChartを最近勉強しはじめた,ぎどらと申します.

グラフに用いるデータを,MySQLから取得し,
JFreeChartを使って折れ線グラフを出力したいのですが,
うまくコンパイルできません.

是非,ご指導ご鞭撻のほど宜しくお願い致します.

ソース
----
import java.io.*;
import java.sql.*;
import java.awt.Color;
import java.awt.Paint;
import javax.servlet.*;
import javax.servlet.http.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.axis.*;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.*;
import org.jfree.data.xy.*;
import org.jfree.date.*;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.jdbc.JDBCCategoryDataset;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

public class chart extends HttpServlet{

public static final Color VERY_LIGHT_YELLOW = new Color(0xFF, 0xFF, 0x80);
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
response.setContentType("image/png");
OutputStream out = response.getOutputStream();
try{
JFreeChart chart = createChart();
ChartUtilities.writeChartAsPNG(out,chart,400,300);
} catch (Exception e) {
System.out.println(e.toString());
}finally {
out.close();
}
}

private JFreeChart createChart() {
CategoryDataset data = readData();
JFreeChart chart = ChartFactory.createXYLineChart(
"世界の物価", // chart title
"都市",
"価格(円換算)",
data, // data
PlotOrientation.VERTICAL,
true, // include legend
true,
false
);
XYPlot plot = (XYPlot) chart.getPlot();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setShapesVisible(true);
renderer.setShapesFilled(true);
chart.setBackgroundPaint(Color.PINK);
return chart;
}
private CategoryDataset readData() {
JDBCCategoryDataset data = null;
String url = "jdbc:mysql:///jsp?useUnicode=true&characterEncoding=SJIS";
Connection connection;
try {
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(url, "", "");
data = new JDBCCategoryDataset(connection);
String sql = "SELECT * FROM prices;";
data.executeQuery(sql);
connection.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
return data;
}
}
----
エラーメッセージ
----
org.jfree.chart.ChartFactory の createXYLineChart(java.lang.String,java.lang.String,java.lang.String,
org.jfree.data.xy.XYDataset,org.jfree.chart.plot.PlotOrientation,
boolean,boolean,boolean) は (java.lang.String,java.lang.String,java.lang.String,
org.jfree.data.category.CategoryDataset,
org.jfree.chart.plot.PlotOrientation,boolean,boolean,boolean)
に適用できません。

JFreeChart chart = ChartFactory.createXYLineChart(
エラー 1 個
----


--
環境
 jfreechart-1.0.0-rc1
 MySQL4.0.18
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-11-13 14:00
引用:

org.jfree.chart.ChartFactory の createXYLineChart(java.lang.String,java.lang.String,java.lang.String,
org.jfree.data.xy.XYDataset,org.jfree.chart.plot.PlotOrientation,
boolean,boolean,boolean) は (java.lang.String,java.lang.String,java.lang.String,
org.jfree.data.category.CategoryDataset,
org.jfree.chart.plot.PlotOrientation,boolean,boolean,boolean)
に適用できません。



このエラーメッセージは引数の型が間違っていることを意味しています。
ドキュメントを確認して該当メソッドの引数の型と、
自分が渡しているデータの型が合っているか確認しましょう。
ぎどら
会議室デビュー日: 2007/11/13
投稿数: 5
投稿日時: 2007-11-13 14:37
nagiseさん

ご返答ありがとうございますm(__)m

プログラミングに関して,まだまだ知識が浅いので,
引数の型というものを,もう少し勉強してから考えてみます.

今後もご指導ご鞭撻のほど宜しくお願い致します.
ぎどら
会議室デビュー日: 2007/11/13
投稿数: 5
投稿日時: 2007-11-17 21:42
下記のソースを参考にして、なんとかできました。

http://www.programacion.com/java/articulo/jfreechart/
1

スキルアップ/キャリアアップ(JOB@IT)