第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));
// 图例
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.setSectionPaint("JAVA从入门到精通(第2版)", Color.black);
piePlot.setSectionPaint("视频学JAVA", Color.blue);
piePlot.setSectionPaint("JAVA全能速查宝典", Color.cyan);
piePlot.setSectionPaint("Java范例完全自学手册(1DVD)", Color.gray);
piePlot.setSectionPaint("Java开发典型模块大全", Color.orange);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo404 pieChartDemo1 = new PieDemo404("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例169 饼图旋转角度
public PieDemo4(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.setStartAngle(120);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo4 pieChartDemo1 = new PieDemo4("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例170 饼图旋转顺序
public PieDemo401(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.setStartAngle(90);
//设置逆时针
piePlot.setDirection(Rotation.ANTICLOCKWISE);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo401 pieChartDemo1 = new PieDemo401("饼图实例");
pieChartDemo1.createPiePlot();
pieChartDemo1.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
pieChartDemo1.setVisible(true);
}
实例171 隐藏分类标签连接线
public PieDemo5(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("{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.setSimpleLabels(true);
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo5 pieChartDemo1 = new PieDemo5("饼图实例");
//创建图形
pieChartDemo1.createPiePlot();
//生成图形
pieChartDemo1.pack();
//把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
//设置显示图形状态
pieChartDemo1.setVisible(true);
}
8.2 3D饼图
实例172 创建3D饼图
public PieDemo6(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.createPieChart3D("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();
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo6 pieChartDemo1 = new PieDemo6("饼图实例");
//创建图形
pieChartDemo1.createPiePlot();
//生成图形
pieChartDemo1.pack();
//把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
//设置显示图形状态
pieChartDemo1.setVisible(true);
}
实例173 3D饼图透明度
public PieDemo7(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.createPieChart3D("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 plot = (PiePlot)chart.getPlot();
//设置饼图透明度
plot.setForegroundAlpha(0.7f);
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo7 pieChartDemo1 = new PieDemo7("饼图实例");
// 创建图形
pieChartDemo1.createPiePlot();
// 生成图形
pieChartDemo1.pack();
// 把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
// 设置显示图形状态
pieChartDemo1.setVisible(true);
}
实例174 3D饼图的Z轴
public PieDemo8(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.createPieChart3D("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();
PiePlot3D plot = (PiePlot3D)chart.getPlot();
//设置3D饼图Z
plot.setDepthFactor(0.3f);
//plot.setDarkerSides(true);
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo8 pieChartDemo1 = new PieDemo8("饼图实例");
// 创建图形
pieChartDemo1.createPiePlot();
// 生成图形
pieChartDemo1.pack();
// 把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
// 设置显示图形状态
pieChartDemo1.setVisible(true);
}
实例175 逆时针旋转3D饼图
PieDemo9.java
public PieDemo9(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.createPieChart3D("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();
PiePlot3D plot = (PiePlot3D) chart.getPlot();
ActionListener actionListener = new PieDemo9Listener(plot);
// 添加监听
Timer timer = new Timer(100, actionListener);
//启动timer时间器
timer.start();
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo9 pieChartDemo1 = new PieDemo9("饼图实例");
// 创建图形
pieChartDemo1.createPiePlot();
// 生成图形
pieChartDemo1.pack();
// 把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChartDemo1);
// 设置显示图形状态
pieChartDemo1.setVisible(true);
}
PieDemo9Listener.java
private PiePlot plot;
//饼图的角度
private int angle = 90;
public PieDemo9Listener(PiePlot plot) {
this.plot =plot;
}
/*
* 设置饼图的角度,然后加1,如果饼图的角度是360度,把角度设置为0
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed( ActionEvent event) {
this.plot.setStartAngle(this.angle);
this.angle = this.angle + 1;
if (this.angle == 360) {
this.angle = 0;
}
}
实例176 顺时针旋转3D饼图
PieDemo10.java
public PieDemo10(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.createPieChart3D("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();
PiePlot3D plot = (PiePlot3D) chart.getPlot();
ActionListener actionListener = new PieDemo10Listener(plot);
// 添加监听
Timer timer = new Timer(100, actionListener);
//启动timer时间器
timer.start();
// 把JFreeChart对象保存到面板中
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
PieDemo10 pieChart = new PieDemo10("饼图实例");
// 创建图形
pieChart.createPiePlot();
// 生成图形
pieChart.pack();
// 把窗体显示到显示器中
RefineryUtilities.centerFrameOnScreen(pieChart);
// 设置显示图形状态
pieChart.setVisible(true);
}
PieDemo10Listener.java
private PiePlot plot;
//饼图的角度
private int angle = 90;
public PieDemo10Listener(PiePlot plot) {
this.plot =plot;
}
/*
* 设置饼图的角度,向右旋转则减1,如果饼图的角度减到0时,把角度重新设置为是360
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed( ActionEvent event) {
this.plot.setStartAngle(this.angle);
this.angle = this.angle - 1;
if (this.angle == 0) {
this.angle = 360;
}
}
8.3 多饼图
实例177 实现多饼图
public PieDemo11(final String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset createDataset() {
double[][] data = new double[][] {
{ 620, 410, 300 },
{ 300, 390, 500 } };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"Dept",//行名称
"Month",//列名称
data);
return dataset;
}
/**
* 获取数据集,生成JFreeChart,
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = createDataset();
JFreeChart chart = ChartFactory.createMultiplePieChart(
"4-6 month sales ranking ", // 饼图标题
dataset, // 数据集
TableOrder.BY_ROW, // 排序方式
true, true, false);
return chart;
}
/**
* 创建饼图
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
setContentPane(new ChartPanel(chart));
}
public static void main(final String[] args) {
final PieDemo11 demo = new PieDemo11("饼图实例");
demo.createPiePlot();
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
实例178 多饼图乱码
public PieDemo12(final String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset createDataset() {
double[][] data = new double[][] {
{ 620, 410, 300 },
{ 300, 390, 500 } };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"部门",//行名称
"月份",//列名称
data);
return dataset;
}
/**
* 获取数据集,生成JFreeChart,
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = createDataset();
JFreeChart chart = ChartFactory.createMultiplePieChart(
"4-6月销售排行", // 饼图标题
dataset, // 数据集
TableOrder.BY_ROW, // 排序方式
true, true, false);
return chart;
}
/**
* 创建饼图
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
// 窗体标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
MultiplePiePlot multiplePiePlot = (MultiplePiePlot) chart.getPlot();
JFreeChart jFreeChart = multiplePiePlot.getPieChart();
// 图表标签
PiePlot piePlot = (PiePlot) jFreeChart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 图表标题
TextTitle textTitle2 = jFreeChart.getTitle();
textTitle2.setFont(new Font("宋体", Font.BOLD, 20));
setContentPane(new ChartPanel(chart));
}
public static void main(final String[] args) {
final PieDemo12 demo = new PieDemo12("饼图实例");
demo.createPiePlot();
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
实例179 多饼图的展示方式
public PieDemo13(final String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset createDataset() {
double[][] data = new double[][] {
{ 620, 410, 300 },
{ 300, 390, 500 } };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"部门",//行名称
"月份",//列名称
data);
return dataset;
}
/**
* 获取数据集,生成JFreeChart,
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = createDataset();
JFreeChart chart = ChartFactory.createMultiplePieChart(
"4-6月销售排行", // 饼图标题
dataset, // 数据集
TableOrder.BY_COLUMN, // 排序方式
true, true, false);
return chart;
}
/**
* 创建饼图
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
// 窗体标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
MultiplePiePlot multiplePiePlot = (MultiplePiePlot) chart.getPlot();
JFreeChart jFreeChart = multiplePiePlot.getPieChart();
// 图表标签
PiePlot piePlot = (PiePlot) jFreeChart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 图表标题
TextTitle textTitle2 = jFreeChart.getTitle();
textTitle2.setFont(new Font("宋体", Font.BOLD, 20));
setContentPane(new ChartPanel(chart));
}
public static void main(final String[] args) {
final PieDemo13 demo = new PieDemo13("饼图实例");
demo.createPiePlot();
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
实例180 3D多饼图
public PieDemo14(final String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset createDataset() {
double[][] data = new double[][] {
{ 620, 410, 310 },
{ 300, 390, 500 } };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"部门",//行名称
"月份",//列名称
data);
return dataset;
}
/**
* 获取数据集,生成JFreeChart,
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = createDataset();
JFreeChart chart = ChartFactory.createMultiplePieChart3D(
"4-6月销售排行", // 饼图标题
dataset, // 数据集
TableOrder.BY_COLUMN, // 排序方式
true, true, false);
return chart;
}
/**
* 创建饼图
*/
public void createPiePlot() {
JFreeChart chart = getJFreeChart();
// 窗体标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.BOLD, 20));
// 图例
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
MultiplePiePlot multiplePiePlot = (MultiplePiePlot) chart.getPlot();
JFreeChart jFreeChart = multiplePiePlot.getPieChart();
// 图表标签
PiePlot3D piePlot = (PiePlot3D) jFreeChart.getPlot();
piePlot.setLabelFont(new Font("宋体", Font.PLAIN, 14));
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}"));
// 图表标题
TextTitle textTitle2 = jFreeChart.getTitle();
textTitle2.setFont(new Font("宋体", Font.BOLD, 20));
setContentPane(new ChartPanel(chart));
}
public static void main(final String[] args) {
final PieDemo14 demo = new PieDemo14("饼图实例");
demo.createPiePlot();
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
8.4 基本柱形图
实例181 简单柱形图
public BarDemo1(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1", 310);
keyedValues.addValue("2", 489);
keyedValues.addValue("3", 512);
keyedValues.addValue("4", 589);
keyedValues.addValue("5", 359);
keyedValues.addValue("6", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010.1-6 sales volume", // 图表标题
"month", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo1 barDemo = new BarDemo1("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
//设置可以显示
barDemo.setVisible(true);
}
实例182 柱形图角度
public BarDemo19(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1", 310);
keyedValues.addValue("2", 489);
keyedValues.addValue("3", 512);
keyedValues.addValue("4", 589);
keyedValues.addValue("5", 359);
keyedValues.addValue("6", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010.1-6 sales volume", // 图表标题
"month", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.HORIZONTAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo19 barDemo = new BarDemo19("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
//设置可以显示
barDemo.setVisible(true);
}
实例183 柱形图负值
public BarDemo20(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1", 310);
keyedValues.addValue("2", 489);
keyedValues.addValue("3", 512);
keyedValues.addValue("4", -589);
keyedValues.addValue("5", null);
keyedValues.addValue("6", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010.1-6 sales volume", // 图表标题
"month", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo20 barDemo = new BarDemo20("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
//设置可以显示
barDemo.setVisible(true);
}
8.5 X坐标轴
实例184 X轴字体
public BarDemo3(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"month", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
* @param chart
*/
public void updateFont(JFreeChart chart){
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis axis = categoryPlot.getDomainAxis();
//X轴字体
axis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
//修改字体
updateFont(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo3 barDemo = new BarDemo3("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例185 X轴标签字体
public BarDemo5(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
* @param chart
*/
public void updateFont(JFreeChart chart){
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis= categoryPlot.getDomainAxis();
//X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
//X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴字体
ValueAxis valueAxis = categoryPlot.getRangeAxis();
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
//修改字体
updateFont(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo5 barDemo = new BarDemo5("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例186 X轴标签角度
public BarDemo40(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// 设置Y轴显示位置
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
categoryAxis.setLabelAngle(Math.PI*0.5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo40 barDemo = new BarDemo40("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例187 X轴显示情况
public BarDemo7(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//X轴(分类轴)
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
//X轴是否显示
categoryAxis.setVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo7 barDemo = new BarDemo7("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例188 X轴尺度线颜色
public BarDemo9(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//X轴(分类轴)
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
//X轴尺度颜色
categoryAxis.setAxisLinePaint(Color.GREEN);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo9 barDemo = new BarDemo9("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例189 隐藏X轴尺度线
public BarDemo11(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// x轴字体
CategoryAxis axis = categoryPlot.getDomainAxis();
//尺度线
axis.setAxisLineVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo11 barDemo = new BarDemo11("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例190 X轴尺度线笔触
public BarDemo13(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// x轴字体
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// 尺度笔触
categoryAxis.setAxisLineStroke(new BasicStroke(5));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo13 barDemo = new BarDemo13("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例191 X轴尺度标签角度
public BarDemo15(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// x轴
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// 尺度间隔
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo15 barDemo = new BarDemo15("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例192 X轴分类的间距
public BarDemo17(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// X轴
CategoryAxis axis = categoryPlot.getDomainAxis();
// X轴分类间距
axis.setCategoryMargin(0.5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo17 barDemo = new BarDemo17("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例193 X轴分类与原点的间距
public BarDemo18(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//X轴
CategoryAxis axis = categoryPlot.getDomainAxis();
//与原点的距离
axis.setLowerMargin(0.3);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo18 barDemo = new BarDemo18("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例194 X轴的显示位置
public BarDemo38(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// 设置X轴显示位置
categoryPlot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo38 barDemo = new BarDemo38("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
8.6 Y坐标轴
实例195 Y轴字体
public BarDemo4(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"month", // x轴标签
"sales", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
* @param chart
*/
public void updateFont(JFreeChart chart){
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis axis = categoryPlot.getDomainAxis();
//X轴字体
axis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
//修改字体
updateFont(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo4 barDemo = new BarDemo4("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例196 Y轴标签字体
public BarDemo6(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo6 barDemo = new BarDemo6("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例197 Y轴显示情况
public BarDemo8(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//y轴(数值轴)
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//y轴是否显示
valueAxis.setVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo8 barDemo = new BarDemo8("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例198 Y轴尺度线颜色
public BarDemo10(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//Y轴(数值轴)
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//Y轴尺度颜色
valueAxis.setAxisLinePaint(Color.GREEN);
//X轴(分类轴)
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
//X轴尺度颜色
categoryAxis.setAxisLinePaint(Color.GREEN);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo10 barDemo = new BarDemo10("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例199 隐藏Y轴尺度线
public BarDemo12(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//Y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//尺度线
valueAxis.setAxisLineVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo12 barDemo = new BarDemo12("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例200 Y轴尺度线笔触
public BarDemo14(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// Y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//尺度笔触
valueAxis.setAxisLineStroke(new BasicStroke(5));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo14 barDemo = new BarDemo14("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例201 Y轴尺度标签角度
public BarDemo16(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
public void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
* @param chart
*/
private void updatePlot(JFreeChart chart){
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//Y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//Y轴尺度标签
valueAxis.setVerticalTickLabels(true);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
//修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo16 barDemo = new BarDemo16("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例202 Y轴起始值
public BarDemo21(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//柱形图启始值
valueAxis.setLowerBound(300);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo21 barDemo = new BarDemo21("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例203 Y轴箭头
public BarDemo23(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// 是否显示Y轴向上箭头
valueAxis.setPositiveArrowVisible(true);
// 是否显示Y轴向下箭头
// valueAxis.setNegativeArrowVisible(true);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo23 barDemo = new BarDemo23("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例204 Y轴主要刻度线
public BarDemo25(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//刻度线是否显示
valueAxis.setTickMarksVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo25 barDemo = new BarDemo25("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例205 Y轴主要刻度线长度
public BarDemo26(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//刻度线是否显示
valueAxis.setTickMarksVisible(true);
//内部刻度线
valueAxis.setTickMarkInsideLength(200);
//外部刻度线
//valueAxis.setTickMarkOutsideLength(20);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo26 barDemo = new BarDemo26("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例206 Y轴次要刻度线
public BarDemo22(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// 是否显示次要刻度线
valueAxis.setMinorTickMarksVisible(true);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo22 barDemo = new BarDemo22("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例207 Y轴次要刻度线长度
public BarDemo24(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//是否显示刻度线
valueAxis.setMinorTickMarksVisible(true);
//内部刻度线长线
valueAxis.setMinorTickMarkInsideLength(600);
//外部刻度线长线
//valueAxis.setMinorTickMarkOutsideLength(4);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo24 barDemo = new BarDemo24("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例208 设置Y轴最大值
public BarDemo27(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//Y轴最大值
valueAxis.setUpperBound(800);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo27 barDemo = new BarDemo27("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例209 设置Y轴数据范围
public BarDemo28(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"java book", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// y轴
ValueAxis valueAxis = categoryPlot.getRangeAxis();
//Y轴数据范围
valueAxis.setRangeAboutValue(200, 1000);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo28 barDemo = new BarDemo28("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例210 Y轴的显示位置
public BarDemo39(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// 设置Y轴显示位置
categoryPlot.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo39 barDemo = new BarDemo39("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
8.7 高级柱形图
实例211 设置网格竖线
public BarDemo29(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置网格竖线
categoryPlot.setDomainGridlinesVisible(true);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo29 barDemo = new BarDemo29("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例212 设置网格竖线颜色
public BarDemo30(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置网格竖线
categoryPlot.setDomainGridlinesVisible(true);
categoryPlot.setDomainGridlinePaint(Color.blue);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo30 barDemo = new BarDemo30("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例213 设置柱形图文本注解
public BarDemo31(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",320);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",499);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",522);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",599);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",369);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",412);
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo31 barDemo = new BarDemo31("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例214 设置柱形图文本注解字体
public BarDemo32(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",320);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",499);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",522);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",599);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",369);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",412);
//设置注释字体
annotation.setFont(new Font("宋体", Font.PLAIN, 15));
annotation1.setFont(new Font("宋体", Font.PLAIN, 15));
annotation2.setFont(new Font("宋体", Font.PLAIN, 15));
annotation3.setFont(new Font("宋体", Font.PLAIN, 15));
annotation4.setFont(new Font("宋体", Font.PLAIN, 15));
annotation5.setFont(new Font("宋体", Font.PLAIN, 15));
//添加注释
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo32 barDemo = new BarDemo32("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例215 设置柱形图文本注解颜色
public BarDemo33(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",320);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",499);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",522);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",599);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",369);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",412);
//设置注释字体
annotation.setFont(new Font("宋体", Font.PLAIN, 15));
annotation1.setFont(new Font("宋体", Font.PLAIN, 15));
annotation2.setFont(new Font("宋体", Font.PLAIN, 15));
annotation3.setFont(new Font("宋体", Font.PLAIN, 15));
annotation4.setFont(new Font("宋体", Font.PLAIN, 15));
annotation5.setFont(new Font("宋体", Font.PLAIN, 15));
//设置注释颜色
annotation.setPaint(Color.WHITE);
annotation1.setPaint(Color.WHITE);
annotation2.setPaint(Color.WHITE);
annotation3.setPaint(Color.WHITE);
annotation4.setPaint(Color.WHITE);
annotation5.setPaint(Color.WHITE);
//添加注释
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo33 barDemo = new BarDemo33("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例216 设置柱形图文本注解锚点
public BarDemo34(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",310);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",489);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",512);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",589);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",359);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",402);
//设置注释文本锚点
annotation.setTextAnchor(TextAnchor.BASELINE_RIGHT);
annotation1.setTextAnchor(TextAnchor.BASELINE_RIGHT);
annotation2.setTextAnchor(TextAnchor.BASELINE_RIGHT);
annotation3.setTextAnchor(TextAnchor.BASELINE_RIGHT);
annotation4.setTextAnchor(TextAnchor.BASELINE_RIGHT);
annotation5.setTextAnchor(TextAnchor.BASELINE_RIGHT);
//添加注释
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo34 barDemo = new BarDemo34("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例217 设置柱形图文本注解类别锚点
public BarDemo35(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",310);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",489);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",512);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",589);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",359);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",402);
//设置注释分类锚点
annotation.setCategoryAnchor(CategoryAnchor.END);
annotation1.setCategoryAnchor(CategoryAnchor.END);
annotation2.setCategoryAnchor(CategoryAnchor.END);
annotation3.setCategoryAnchor(CategoryAnchor.END);
annotation4.setCategoryAnchor(CategoryAnchor.END);
annotation5.setCategoryAnchor(CategoryAnchor.END);
//添加注释
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo35 barDemo = new BarDemo35("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例218 设置柱形图文本注解旋转锚点
public BarDemo36(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
//设置文本注释
CategoryTextAnnotation annotation = new CategoryTextAnnotation("310","1月",310);
CategoryTextAnnotation annotation1 = new CategoryTextAnnotation("489","2月",489);
CategoryTextAnnotation annotation2 = new CategoryTextAnnotation("512","3月",512);
CategoryTextAnnotation annotation3 = new CategoryTextAnnotation("589","4月",589);
CategoryTextAnnotation annotation4 = new CategoryTextAnnotation("359","5月",359);
CategoryTextAnnotation annotation5 = new CategoryTextAnnotation("402","6月",402);
//设置注释角度锚点
annotation.setRotationAngle(Math.PI*0.2);
annotation1.setRotationAngle(Math.PI*0.2);
annotation2.setRotationAngle(Math.PI*0.2);
annotation3.setRotationAngle(Math.PI*0.2);
annotation4.setRotationAngle(Math.PI*0.2);
annotation5.setRotationAngle(Math.PI*0.2);
//添加注释
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
categoryPlot.addAnnotation(annotation5);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo36 barDemo = new BarDemo36("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例219 设置柱形图线条注解
public BarDemo37(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
categoryPlot.getDomainAxisEdge();
//设置线条注解
CategoryLineAnnotation annotation = new CategoryLineAnnotation("1月",200,"2月",300,Color.blue,new BasicStroke());
CategoryLineAnnotation annotation1 = new CategoryLineAnnotation("2月",300,"3月",100,Color.blue,new BasicStroke());
CategoryLineAnnotation annotation2 = new CategoryLineAnnotation("3月",100,"4月",400,Color.blue,new BasicStroke());
CategoryLineAnnotation annotation3 = new CategoryLineAnnotation("4月",400,"5月",300,Color.blue,new BasicStroke());
CategoryLineAnnotation annotation4 = new CategoryLineAnnotation("5月",300,"6月",350,Color.blue,new BasicStroke());
categoryPlot.addAnnotation(annotation);
categoryPlot.addAnnotation(annotation1);
categoryPlot.addAnnotation(annotation2);
categoryPlot.addAnnotation(annotation3);
categoryPlot.addAnnotation(annotation4);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo37 barDemo = new BarDemo37("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例220 绘制柱形效果
public BarDemo41(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
// 设置Y轴显示位置
BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
// 普通效果
StandardBarPainter barPainter = new StandardBarPainter();
// 梯形效果
// GradientBarPainter barPainter = new GradientBarPainter();
renderer.setBarPainter(barPainter);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo41 barDemo = new BarDemo41("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例221 柱形图阴影
public BarDemo42(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
// 阴影效果
renderer.setShadowVisible(false);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo42 barDemo = new BarDemo42("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例222 柱形图阴影偏移
public BarDemo43(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
// 阴影效果
renderer.setShadowVisible(true);
//X轴偏移量
renderer.setShadowXOffset(10);
//Y轴偏移量
renderer.setShadowYOffset(10);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo43 barDemo = new BarDemo43("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例223 设置柱形的颜色
public BarDemo44(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
// 柱图颜色
renderer.setSeriesPaint(0, Color.orange);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo44 barDemo = new BarDemo44("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例224 绘制3D柱形图
public BarDemo45(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart3D("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo45 barDemo = new BarDemo45("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例225 标记柱形图区间
public BarDemo46(String title) {
super(title);
}
/**
* 创建一个数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
keyedValues.addValue("1月", 310);
keyedValues.addValue("2月", 489);
keyedValues.addValue("3月", 512);
keyedValues.addValue("4月", 589);
keyedValues.addValue("5月", 359);
keyedValues.addValue("6月", 402);
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
"JAVA图书", keyedValues);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
IntervalMarker target = new IntervalMarker(560.0, 700.0);
//Marker标签名称
target.setLabel("超出历史最高销售");
//Marker标签字体
target.setLabelFont(new Font("宋体", Font.PLAIN, 14));
//Marker标签锚点
target.setLabelAnchor(RectangleAnchor.LEFT);
//Marker标签文字锚点
target.setLabelTextAnchor(TextAnchor.BASELINE_LEFT);
//Marker背景色
target.setPaint(new Color(222, 122, 255, 128));
//标记范围
categoryPlot.addRangeMarker(target);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
// 把JFreeChart面板保存在窗体里
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo46 barDemo = new BarDemo46("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例226 多系列柱形图
public BarDemo47(String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
// 行关键字
final String series1 = "JAVA图书";
final String series2 = "VC图书";
final String series3 = "VB图书";
//列关键字
final String category1 = "1月";
final String category2 = "2月";
final String category3 = "3月";
final String category4 = "4月";
final String category5 = "5月";
final String category6 = "6月";
// 创建分类数据集
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(310, series1, category1);
dataset.addValue(489, series1, category2);
dataset.addValue(512, series1, category3);
dataset.addValue(589, series1, category4);
dataset.addValue(359, series1, category5);
dataset.addValue(402, series1, category6);
dataset.addValue(501, series2, category1);
dataset.addValue(200, series2, category2);
dataset.addValue(308, series2, category3);
dataset.addValue(580, series2, category4);
dataset.addValue(418, series2, category5);
dataset.addValue(315, series2, category6);
dataset.addValue(480, series3, category1);
dataset.addValue(381, series3, category2);
dataset.addValue(264, series3, category3);
dataset.addValue(185, series3, category4);
dataset.addValue(209, series3, category5);
dataset.addValue(302, series3, category6);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo47 barDemo = new BarDemo47("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}
实例227 多系列3D柱形图
public BarDemo48(String title) {
super(title);
}
/**
* 创建数据集
*
* @return
*/
private CategoryDataset getCategoryDataset() {
// 行关键字
final String series1 = "JAVA图书";
final String series2 = "VC图书";
final String series3 = "VB图书";
//列关键字
final String category1 = "1月";
final String category2 = "2月";
final String category3 = "3月";
final String category4 = "4月";
final String category5 = "5月";
final String category6 = "6月";
// 创建分类数据集
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(310, series1, category1);
dataset.addValue(489, series1, category2);
dataset.addValue(512, series1, category3);
dataset.addValue(589, series1, category4);
dataset.addValue(359, series1, category5);
dataset.addValue(402, series1, category6);
dataset.addValue(501, series2, category1);
dataset.addValue(200, series2, category2);
dataset.addValue(308, series2, category3);
dataset.addValue(580, series2, category4);
dataset.addValue(418, series2, category5);
dataset.addValue(315, series2, category6);
dataset.addValue(480, series3, category1);
dataset.addValue(381, series3, category2);
dataset.addValue(264, series3, category3);
dataset.addValue(185, series3, category4);
dataset.addValue(209, series3, category5);
dataset.addValue(302, series3, category6);
return dataset;
}
/**
* 生成JFreeChart
*
* @return
*/
private JFreeChart getJFreeChart() {
CategoryDataset dataset = getCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart3D("2010年上半年销售量", // 图表标题
"月份", // x轴标签
"销售量(单位:本)", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
return chart;
}
/**
* 修改字体
*
* @param chart
*/
private void updateFont(JFreeChart chart) {
// 标题
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
LegendTitle legendTitle = chart.getLegend();
legendTitle.setItemFont(new Font("宋体", Font.PLAIN, 14));
// 图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// X轴字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// X轴标签字体
categoryAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
ValueAxis valueAxis = categoryPlot.getRangeAxis();
// y轴字体
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 14));
// y轴标签字体
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));
}
/**
* 更新图表显示
*
* @param chart
*/
private void updatePlot(JFreeChart chart) {
//分类图表
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer3D renderer = (BarRenderer3D) categoryPlot.getRenderer();
//显示边线
renderer.setDrawBarOutline(true);
}
/**
* 设置图表
*
* @param chart
*/
public void createPlot() {
JFreeChart chart = getJFreeChart();
// 修改字体
updateFont(chart);
// 修改图表
updatePlot(chart);
setContentPane(new ChartPanel(chart));
}
public static void main(String[] args) {
BarDemo48 barDemo = new BarDemo48("柱形图实例");
barDemo.createPlot();
barDemo.pack();
// 把窗体显示到显示器中央
RefineryUtilities.centerFrameOnScreen(barDemo);
// 设置可以显示
barDemo.setVisible(true);
}