<%@ page language="java" import="org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation,org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.category.DefaultCategoryDataset,org.jfree.data.category.*,org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.title.TextTitle,java.awt.*,org.jfree.chart.title.LegendTitle,org.jfree.chart.axis.NumberAxis" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'jfreechartJsptest.jsp' starting page</title>
</head>
<body>
<%
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(610, "广州", "猪肉");
dataset.addValue(220, "广州", "牛肉");
dataset.addValue(530, "广州", "鸡肉");
dataset.addValue(340, "广州", "鱼肉");
JFreeChart chart = ChartFactory.createBarChart3D("肉类销量统计图",
"肉类",
"销量",
dataset,
PlotOrientation.VERTICAL,
false,
false,
false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();//x轴
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
//ValueAxis numberaxis = plot.getRangeAxis(); //y轴
TextTitle t = chart.getTitle();
t.setFont(new Font("宋体",Font.BOLD,40));//标题文字
domainAxis.setLabelFont(new Font("宋体",Font.BOLD,20));//x轴标题文字
domainAxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//x轴坐标上文字
numberaxis.setLabelFont(new Font("宋体",Font.BOLD,20));//y轴标题文字
numberaxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//y轴坐标上文字
// LegendTitle title=chart.getLegend();
// title.setItemFont(new Font("黑体",Font.BOLD,5));//图例文字
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,null,session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>"width=500 height=300 border=0 usemap="#<%= filename %>">
</body>
</html>
org.jfree.data.category.DefaultCategoryDataset,org.jfree.data.category.*,org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.title.TextTitle,java.awt.*,org.jfree.chart.title.LegendTitle,org.jfree.chart.axis.NumberAxis" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'jfreechartJsptest.jsp' starting page</title>
</head>
<body>
<%
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(610, "广州", "猪肉");
dataset.addValue(220, "广州", "牛肉");
dataset.addValue(530, "广州", "鸡肉");
dataset.addValue(340, "广州", "鱼肉");
JFreeChart chart = ChartFactory.createBarChart3D("肉类销量统计图",
"肉类",
"销量",
dataset,
PlotOrientation.VERTICAL,
false,
false,
false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();//x轴
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
//ValueAxis numberaxis = plot.getRangeAxis(); //y轴
TextTitle t = chart.getTitle();
t.setFont(new Font("宋体",Font.BOLD,40));//标题文字
domainAxis.setLabelFont(new Font("宋体",Font.BOLD,20));//x轴标题文字
domainAxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//x轴坐标上文字
numberaxis.setLabelFont(new Font("宋体",Font.BOLD,20));//y轴标题文字
numberaxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//y轴坐标上文字
// LegendTitle title=chart.getLegend();
// title.setItemFont(new Font("黑体",Font.BOLD,5));//图例文字
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,null,session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>"width=500 height=300 border=0 usemap="#<%= filename %>">
</body>
</html>
附:标题乱码
- chart.getTitle().setFont(new Font("宋体", Font.BOLD,12));
chart.getTitle().setFont(new Font("宋体", Font.BOLD,12));
其他
- 1. CategoryAxis domainAxis = plot.getDomainAxis();
- 2.
- 3. // NumberAxis valueAxis=(NumberAxis) plot.getRangeAxis();
- 4. //有人说这个是水平方向设置的 方法。
- 5. ValueAxis numberaxis = plot.getRangeAxis();
- 6.
- 7. /*------设置X轴坐标上的文字-----------*/
- 8. domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
- 9.
- 10. /*------设置X轴的标题文字------------*/
- 11. domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
- 12.
- 13. /*------设置Y轴坐标上的文字-----------*/
- 14. numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
- 15.
- 16. /*------设置Y轴的标题文字------------*/
- 17. numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
- 18.
- 19. /*------这句代码解决了底部汉字乱码的问题-----------*/
- 20. jfreechart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
转载于:https://blog.51cto.com/hongyanwb/624325