画直方图:
package Util;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.*;
/**
* Created by KPL on 2018/12/10.
*/
public class ChartUtil {
public static CategoryDataset createDataset(){
// 实例化DefaultCategoryDataset对象
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
// 向数据集合中添加数据
dataset.addValue(500, "Java图书", "J2SE类");
dataset.addValue(100, "Java图书", "J2ME类");
dataset.addValue(900, "Java图书", "J2EE类");
return dataset;
}
public static JFreeChart createChart() {
StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); //创建主题样式
standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20)); //设置标题字体
standardChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15)); //设置图例的字体
standardChartTheme.setLargeFont(new Font("宋体", Font.PLAIN, 15)); //设置轴向的字体
ChartFactory.setChartTheme(standardChartTheme);//设置主题样式
// 通过ChartFactory创建JFreeChart
JFreeChart chart = ChartFactory.createBarChart3D(
"Java图书销量统计", //图表标题
"Java图书", //横轴标题
"销量(本)", //纵轴标题
createDataset(), //数据集合
PlotOrientation.VERTICAL, //图表方向
true, //是否显示图例标识
false, //是否显示tooltips
false); //是否支持超链接
return chart;
}
// 本地测试
public static void main(String[] args) {
ChartFrame cf = new ChartFrame("Test", createChart());
cf.pack();
cf.setVisible(true);
}
}
画折线图:
public static CategoryDataset GetDataset()
{
DefaultCategoryDataset mDataset = new DefaultCategoryDataset();
mDataset.addValue(1, "First", "2013");
mDataset.addValue(3, "First", "2014");
mDataset.addValue(2, "First", "2015");
mDataset.addValue(6, "First", "2016");
mDataset.addValue(5, "First", "2017");
mDataset.addValue(12, "First", "2018");
return mDataset;
}
// 本地测试
public static void main(String[] args) {
StandardChartTheme mChartTheme = new StandardChartTheme("CN");
mChartTheme.setLargeFont(new Font("黑体", Font.BOLD, 20));
mChartTheme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15));
mChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));
ChartFactory.setChartTheme(mChartTheme);
CategoryDataset mDataset = GetDataset();
JFreeChart mChart = ChartFactory.createLineChart(
"折线图", //图名字
"年份", //横坐标
"数量", //纵坐标
mDataset, //数据集
PlotOrientation.VERTICAL,
true, //显示图例
true, //采用标准生成器
false); //是否生成超链接
CategoryPlot mPlot = (CategoryPlot)mChart.getPlot();
mPlot.setBackgroundPaint(Color.LIGHT_GRAY);
mPlot.setRangeGridlinePaint(Color.BLUE);//背景底部横虚线
mPlot.setOutlinePaint(Color.RED); //边界线
ChartFrame mChartFrame = new ChartFrame("折线图", mChart);
mChartFrame.pack();
mChartFrame.setVisible(true);
}