java图表标题,Java开发实例大全提高篇——JFreeChart图表篇(一)

第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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值