第2篇 JFreeChart图表篇
第7章 JFreeChart基本操作
7.1 JFreeChart基础操作
实例144 基本饼图
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("Pie title",
dataset, false, false, false);
return chart;
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("A", 200);
dataset.setValue("B", 400);
dataset.setValue("C", 500);
return dataset;
}
public static void main(String[] args) {
ChartDemo1 chartDemo1 = new ChartDemo1();
ChartFrame chartFrame = new ChartFrame("JFreeChar Demo",
chartDemo1.getJFreeChart());
chartFrame.pack();
chartFrame.setVisible(true);
}
实例145 显示图示
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("Pie title", dataset,
true, false, false);
return chart;
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("A", 200);
dataset.setValue("B", 400);
dataset.setValue("C", 500);
return dataset;
}
public static void main(String[] args) {
ChartDemo2 demo = new ChartDemo2();
ChartFrame chartFrame = new ChartFrame("JFreeChar Demo",
demo.getJFreeChart());
chartFrame.pack();
chartFrame.setVisible(true);
}
实例146 工具栏提示
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("Pie title", dataset,
true, true, false);
return chart;
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("A", 200);
dataset.setValue("B", 400);
dataset.setValue("C", 500);
return dataset;
}
public static void main(String[] args) {
ChartDemo3 demo = new ChartDemo3();
ChartFrame chartFrame = new ChartFrame("JFreeChar Demo",
demo.getJFreeChart());
chartFrame.pack();
chartFrame.setVisible(true);
}
实例147 乱码问题
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo4 demo = new ChartDemo4();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例148 显示数值
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置饼图标签
*
* @param chart
*/
public void setPiePoltNum(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo5 demo = new ChartDemo5();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
demo.setPiePoltNum(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例149 抗锯齿设置
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
//关闭抗锯齿
chart.setAntiAlias(false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo6 demo = new ChartDemo6();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
7.2 设置图表背景
实例150 设置背景图片
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置饼图背景图
*
* @param chart
*/
public void setBackgroundImage(JFreeChart chart) {
Image image = null;
try {
image = ImageIO.read(new File("backgroundImage.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundImage(image);
//chart.setBackgroundImage(image);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo7 demo = new ChartDemo7();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
demo.setBackgroundImage(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例151 设置图片对齐方式
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置饼图背景图
*
* @param chart
*/
public void setBackgroundImage(JFreeChart chart) {
Image image = null;
try {
image = ImageIO.read(new File("backgroundImage.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundImage(image);
//设置背景对齐
piePlot.setBackgroundImageAlignment(Align.CENTER);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo8 demo = new ChartDemo8();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
demo.setBackgroundImage(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例152 设置背景图片透明度
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置饼图背景图
*
* @param chart
*/
public void setBackgroundImage(JFreeChart chart) {
Image image = null;
try {
image = ImageIO.read(new File("backgroundImage.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundImage(image);
//设置背景透明度
piePlot.setBackgroundImageAlpha(1f);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo9 demo = new ChartDemo9();
JFreeChart chart = demo.getJFreeChart();
demo.setPiePoltFont(chart);
demo.setBackgroundImage(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例153 设置背景颜色
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置饼图背景色
*
* @param chart
*/
public void setBackgroundColor(JFreeChart chart) {
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundPaint(Color.orange);
//piePlot.setBackgroundPaint(new Color(200, 220, 202));
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo10 pieChartDemo1 = new ChartDemo10();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setBackgroundColor(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
7.3 处理图表的边框
实例154 隐藏图表边框
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置边框
*
* @param chart
*/
public void setOutline(JFreeChart chart) {
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundPaint(Color.white);
piePlot.setOutlineVisible(false);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo11 pieChartDemo1 = new ChartDemo11();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setOutline(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例155 图表边框笔触
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置边框
*
* @param chart
*/
public void setOutline(JFreeChart chart) {
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundPaint(Color.white);
Stroke stroke = new BasicStroke(5);
piePlot.setOutlineStroke(stroke);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo12 pieChartDemo1 = new ChartDemo12();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setOutline(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例156 图表边框颜色
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 设置边框
*
* @param chart
*/
public void setOutline(JFreeChart chart) {
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setBackgroundPaint(Color.white);
Stroke stroke = new BasicStroke(5);
//设置边框笔触
piePlot.setOutlineStroke(stroke);
//设置边框颜色
piePlot.setOutlinePaint(Color.orange);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo13 pieChartDemo1 = new ChartDemo13();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setOutline(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
7.4 修改图表的图示
实例157 设置图示背景色
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
legendTitle.setBackgroundPaint(Color.orange);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo14 pieChartDemo1 = new ChartDemo14();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例158 设置图示边框
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
legendTitle.setBackgroundPaint(Color.orange);
//设置图示边框
legendTitle.setBorder(0, 0, 0, 0);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo15 pieChartDemo1 = new ChartDemo15();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例159 设置图示边框颜色
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
BlockFrame blockFrame = new BlockBorder(2,2,2,2,Color.blue);
legendTitle.setFrame(blockFrame);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo16 pieChartDemo1 = new ChartDemo16();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例160 设置图示边缘间距
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
legendTitle.setMargin(0, 10, 10, 246);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo17 pieChartDemo1 = new ChartDemo17();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例161 设置图示字体颜色
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemPaint(Color.MAGENTA);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo18 pieChartDemo1 = new ChartDemo18();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
实例162 设置图示位置
public JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
// locale.getISO3Language()
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
public void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图示
*
* @param chart
*/
public void setLegendTitle(JFreeChart chart) {
LegendTitle legendTitle = chart.getLegend();
//设置图示位置
legendTitle.setPosition(RectangleEdge.RIGHT);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
return dataset;
}
public static void main(String[] args) {
ChartDemo19 pieChartDemo1 = new ChartDemo19();
JFreeChart chart = pieChartDemo1.getJFreeChart();
pieChartDemo1.setPiePoltFont(chart);
pieChartDemo1.setLegendTitle(chart);
ChartFrame chartFrame = new ChartFrame("JFreeChart的例子", chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
第8章 基础图表技术
8.1 普通饼图
实例163 分离饼图
public PieDemo1(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置Pie
*
* @param chart
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
PiePlot piePlot = (PiePlot) chart.getPlot();
// 需要分离的图书
piePlot.setExplodePercent("Java范例完全自学手册(1DVD)", 0.1);
piePlot.setExplodePercent("JAVA全能速查宝典", 0.1);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo1 pieChartDemo1 = new PieDemo1("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例164 椭圆形饼图
public PieDemo2(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置Pie
*
* @param chart
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
PiePlot piePlot = (PiePlot) chart.getPlot();
//是否椭圆
piePlot.setCircular(false);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo2 demo = new PieDemo2("饼图实例");
demo.createPiePlot();
demo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
实例165 饼图的阴影
public PieDemo3(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置Pie
*
* @param chart
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
PiePlot piePlot = (PiePlot) chart.getPlot();
//设置阴影效果
piePlot.setShadowXOffset(20);
piePlot.setShadowYOffset(20);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo3 demo = new PieDemo3("饼图实例");
demo.createPiePlot();
demo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
实例166 饼图的分类边框颜色
public PieDemo402(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置Pie
*
* @param chart
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
PiePlot piePlot = (PiePlot) chart.getPlot();
//设置饼图边框的颜色
piePlot.setSectionOutlinePaint("JAVA从入门到精通(第2版)", Color.black);
piePlot.setSectionOutlinePaint("视频学JAVA", Color.black);
piePlot.setSectionOutlinePaint("JAVA全能速查宝典", Color.black);
piePlot.setSectionOutlinePaint("Java范例完全自学手册(1DVD)", Color.black);
piePlot.setSectionOutlinePaint("Java开发典型模块大全", Color.black);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo402 pieChartDemo1 = new PieDemo402("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例167 加粗饼图分类边框
public PieDemo403(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置Pie
*
* @param chart
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
PiePlot piePlot = (PiePlot) chart.getPlot();
//设置饼图边框笔触
piePlot.setSectionOutlineStroke("JAVA从入门到精通(第2版)",new BasicStroke(3f));
piePlot.setSectionOutlineStroke("视频学JAVA", new BasicStroke(3f));
piePlot.setSectionOutlineStroke("JAVA全能速查宝典", new BasicStroke(3f));
piePlot.setSectionOutlineStroke("Java范例完全自学手册(1DVD)", new BasicStroke(3f));
piePlot.setSectionOutlineStroke("Java开发典型模块大全", new BasicStroke(3f));
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo403 pieChartDemo1 = new PieDemo403("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例168 设置饼图颜色
public PieDemo404(String title) {
super(title);
}
/**
* 创建一个饼图表的数据集
*
* @return
*/
private PieDataset getPieDataset() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA从入门到精通(第2版)", 500);
dataset.setValue("视频学JAVA", 800);
dataset.setValue("JAVA全能速查宝典", 1000);
dataset.setValue("Java范例完全自学手册(1DVD)", 400);
dataset.setValue("Java开发典型模块大全", 750);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
PieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart("2010.8月份销售排行", dataset,
true, true, false);
setPiePoltFont(chart);
return chart;
}
/**
* 设置饼图使用的字体
*
* @param chart
*/
protected void setPiePoltFont(JFreeChart chart) {
// 图表(饼图)
PiePlot piePlot = (PiePlot) chart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
&nb