我用下边的代码可以生成柱状图
但是柱子上却不能显示出数字,我写的有显示数字 ,不管用这是怎吗回事?
还有怎吗设置柱子的粗细?
我用的是 jfreechart-1.0.1.jar<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*,jFree.*" errorPage="" %><%@ page import ="org.jfree.chart.ChartFactory"%>
<%@ page import ="org.jfree.chart.ChartUtilities" %>
<%@ page import ="org.jfree.chart.JFreeChart" %>
<%@ page import ="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import ="org.jfree.data.category.CategoryDataset" %>
<%@ page import ="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import ="org.jfree.data.general.DefaultPieDataset"%><%@ page import="java.awt.Color,
java.awt.Font,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.general.DatasetUtilities,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.category.BarRenderer3D,
org.jfree.chart.renderer.category.BarRenderer,
org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
org.jfree.chart.axis.AxisLocation"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>jfreechar</title>
</head>
<body>
<% String ww[][]={
{"200","姓名1"},{"190","姓名2"},
{"120","姓名5"},{"110","姓名6"},
{"55","姓名9"},{"52","姓名10"}
};
//-----------------------------------------------------------
response.setContentType("image/jpeg");
CategoryDataset dataset_u = null;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
if(ww.length>0&&ww !=null)
{
for(int j=0;j<ww.length;j++)
{
dataset.addValue(Integer.parseInt(ww[j][0]),ww[j][1], ww[j][1]);
}
}
dataset_u=dataset;
JFreeChart chart = ChartFactory.createBarChart3D("得分对比情况","人员姓名", "分数",dataset_u,PlotOrientation.VERTICAL,true,false,false);
///////////////////// 设置柱状图属性 开始 ////////////////////
CategoryPlot plot = chart.getCategoryPlot(); plot.setForegroundAlpha(0.7f);//透明度
BarRenderer3D renderer = new BarRenderer3D();
//显示每个柱的数值,并修改该数值的字体属性 开始
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("Arial",Font.PLAIN,12));
renderer.setItemLabelPaint(Color.black);
renderer.setItemLabelsVisible(true);
//显示每个柱的数值,并修改该数值的字体属性 结束//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.01);
///////////////////// 设置柱状图属性 结束 ////////////////////
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,700,500,null); %>
</body>
</html>
但是柱子上却不能显示出数字,我写的有显示数字 ,不管用这是怎吗回事?
还有怎吗设置柱子的粗细?
我用的是 jfreechart-1.0.1.jar<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*,jFree.*" errorPage="" %><%@ page import ="org.jfree.chart.ChartFactory"%>
<%@ page import ="org.jfree.chart.ChartUtilities" %>
<%@ page import ="org.jfree.chart.JFreeChart" %>
<%@ page import ="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import ="org.jfree.data.category.CategoryDataset" %>
<%@ page import ="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import ="org.jfree.data.general.DefaultPieDataset"%><%@ page import="java.awt.Color,
java.awt.Font,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.general.DatasetUtilities,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.category.BarRenderer3D,
org.jfree.chart.renderer.category.BarRenderer,
org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
org.jfree.chart.axis.AxisLocation"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>jfreechar</title>
</head>
<body>
<% String ww[][]={
{"200","姓名1"},{"190","姓名2"},
{"120","姓名5"},{"110","姓名6"},
{"55","姓名9"},{"52","姓名10"}
};
//-----------------------------------------------------------
response.setContentType("image/jpeg");
CategoryDataset dataset_u = null;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
if(ww.length>0&&ww !=null)
{
for(int j=0;j<ww.length;j++)
{
dataset.addValue(Integer.parseInt(ww[j][0]),ww[j][1], ww[j][1]);
}
}
dataset_u=dataset;
JFreeChart chart = ChartFactory.createBarChart3D("得分对比情况","人员姓名", "分数",dataset_u,PlotOrientation.VERTICAL,true,false,false);
///////////////////// 设置柱状图属性 开始 ////////////////////
CategoryPlot plot = chart.getCategoryPlot(); plot.setForegroundAlpha(0.7f);//透明度
BarRenderer3D renderer = new BarRenderer3D();
//显示每个柱的数值,并修改该数值的字体属性 开始
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("Arial",Font.PLAIN,12));
renderer.setItemLabelPaint(Color.black);
renderer.setItemLabelsVisible(true);
//显示每个柱的数值,并修改该数值的字体属性 结束//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.01);
///////////////////// 设置柱状图属性 结束 ////////////////////
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,700,500,null); %>
</body>
</html>
解决方案 »
- 我有一组图片 如何播放成动画
- 高手们!能先回答我一个愚蠢的问题吗?
- io包里面的文件读写操作后有关闭和清空命令。但是先后顺序是怎么规定的。我发现如果打乱会有错误
- 急求《thinking in java》第二版的电子书,最好是CHM格式的
- 高手帮忙看看这段代码
- 要用swing组件做界面,怎么用能编辑多行文本阿
- 请教怎样透过代理服务器访问URL,目前我的程序只能在不使用代理服务器的环境中使用?
- 这是THINK JIN JAVA 课后题的一道精典短题,谁能给我答案??!!
- 如何实现窗口总在最前的功能?
- 请问饿汉式单例加入多个线程后会有安全问题吗?
- 高手帮我看看与什么问题
- mysql在Eclipse中配置
但是原理都一样
长度的可以在其中的属性对象中设置
显示柱体数值可以用热点图去做。
看API<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.*,
org.krysalis.jcharts.properties.LegendProperties,
org.krysalis.jcharts.properties.ChartProperties,
org.krysalis.jcharts.properties.AxisProperties,
org.krysalis.jcharts.properties.util.ChartFont,
org.krysalis.jcharts.properties.LineChartProperties,
org.krysalis.jcharts.properties.PointChartProperties,
org.krysalis.jcharts.chartData.DataSeries,
org.krysalis.jcharts.test.TestDataGenerator,
org.krysalis.jcharts.chartData.AxisChartDataSet,
org.krysalis.jcharts.types.ChartType,
org.krysalis.jcharts.axisChart.AxisChart,
org.krysalis.jcharts.encoders.ServletEncoderHelper"%><%
try
{
//From AxisChartServlet.java:init()
LegendProperties legendProperties = new LegendProperties();
ChartProperties chartProperties = new ChartProperties();
AxisProperties axisProperties = new AxisProperties( false ); ChartFont axisScaleFont = new ChartFont( new Font( "Georgia Negreta cursiva", Font.PLAIN, 13 ), Color.black );
axisProperties.getXAxisProperties().setScaleChartFont( axisScaleFont );
axisProperties.getYAxisProperties().setScaleChartFont( axisScaleFont ); ChartFont axisTitleFont = new ChartFont( new Font( "Arial Narrow", Font.PLAIN, 14 ), Color.black );
axisProperties.getXAxisProperties().setTitleChartFont( axisTitleFont );
axisProperties.getYAxisProperties().setTitleChartFont( axisTitleFont ); Stroke[] strokes= { LineChartProperties.DEFAULT_LINE_STROKE, LineChartProperties.DEFAULT_LINE_STROKE, LineChartProperties.DEFAULT_LINE_STROKE };
Shape[] shapes= { PointChartProperties.SHAPE_TRIANGLE,PointChartProperties.SHAPE_DIAMOND, PointChartProperties.SHAPE_CIRCLE };
LineChartProperties lineChartProperties = new LineChartProperties(strokes,shapes);
String[] xAxisLabels= { "1998", "1999", "2000", "2001", "2002", "2003", "2004"};
String xAxisTitle= "Years";
String yAxisTitle= "Problems";
String title= "Micro$oft At Work";
DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle,title );
//From AxisChartServlet.java:createAxisChartDataSet
double[][] data= TestDataGenerator.getRandomNumbers( 3, 7, 200, 500 );
String[] legendLabels= { "Bugs", "Security Holes", "Backdoors" };
Paint[] paints= TestDataGenerator.getRandomPaints( 3 );
AxisChartDataSet acds = new AxisChartDataSet(data, legendLabels, paints,ChartType.LINE, lineChartProperties );
dataSeries.addIAxisPlotDataSet(acds);
AxisChart axisChart = new AxisChart(dataSeries, chartProperties, axisProperties,legendProperties, 600, 360);
ServletEncoderHelper.encodeJPEG13(axisChart, 1.0f, response);
}
catch(Exception e)
{
System.out.println(e);
}
%>
缺少了plot.setRenderer(renderer);