java怎么生成折线图,传入月份(1,2,3)生产数量(100,200,300),然后生成一个折线图,最好是曲线图,谢

生成图片放在D盘里,谢谢

按照你的要求编写的折线图程序如下:生成的图片放在D盘根目录下,文件名是testline.png

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class LineCharts extends ApplicationFrame {
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
}

public static void main(String[] args) {
LineCharts fjc = new LineCharts("折线图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);

}
// 生成显示图表的面板 public static JPanel createDemoLine() {
JFreeChart jfreechart = createChart(createDataset());
saveAsFile(jfreechart, "D://testline.png", 500, 300);
return new ChartPanel(jfreechart);
}

// 生成图表主对象JFreeChart public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
//定义图表对象
JFreeChart chart = ChartFactory.createLineChart("LineChart", // chart title
"Time", // domain axis label
"Quantity", // range axis label
linedataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot plot = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(1);
rangeAxis.setLabelAngle(Math.PI / 2.0);

return chart; }
//生成数据 public static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
// 各曲线名称
String series1 = "car";

// 横轴名称(列名称)
String type1 = "Jan";
String type2 = "Feb";
String type3 = "Mar";

linedataset.addValue(100, series1, type1); linedataset.addValue(200, series1, type2);
linedataset.addValue(300, series1, type3);

return linedataset; }
public static void saveAsFile(JFreeChart chart, String outputPath,
int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
// 保存为PNG文件
ChartUtilities.writeChartAsPNG(out, chart, 600, 350);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// do nothing
}
}
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
有一个jfreeChart 你可以去网上找找追问

具体能举个例子吗,我看不太懂

追答

你觉得那么大堆代码我能给你举出例子么…… 在新浪 爱问里下载 有jfreeChat的例子

追问

举个简单的就好,我写不明白了,在d盘生成个折线图片

追答

。。。你下载一个例子吧还是

相似回答
大家正在搜