不显示数据-jfreechat线型图的createLineChart()
时间:2008-08-19 14:12:44
来源:论坛整理 作者: 编辑:chinaitzhe
<%
DefaultCategoryDataset dataZZ = new DefaultCategoryDataset();
dataZZ.addValue(1, "春季=1 ", "春季 ");
dataZZ.addValue(42, "夏季=42 ", "夏季 ");
dataZZ.addValue(7, "秋季=7 ", "秋季 ");
dataZZ.addValue(0, "冬季=0 ", "冬季 ");
JFreeChart chartXX = ChartFactory.createLineChart( "季度统计 ", " ", "数值 ",dataZZ,PlotOrientation.VERTICAL,true,false,false);
chartXX.setBackgroundPaint(Color.WHITE);
chartXX.setBorderPaint(new GradientPaint(0,0,Color.white,0,1000,Color.blue));
CategoryPlot plotXX = chartXX.getCategoryPlot();
plotXX.setForegroundAlpha(0.8f);
String filenameXX=ServletUtilities.saveChartAsJPEG(chartXX,600,400,session);
String graphURLXX=request.getContextPath() "/servlet/DisplayChart?filename= " filenameXX;
%>
<img src= " <%=graphURLXX%> " border=0 usemap= "#map0 ">
出来的效果是没有想象中的线图,只有XY轴和平行X轴的虚线。
我不清楚是不是某一步骤设错了,如果你知道,请赐教,谢谢。
网友回复:用jfreechart生成3D柱状图的代码,自己挑有用的参考:
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ package barchart3d; import campaign.BaseCamp; import java.awt.Dimension; import java.awt.Color; import javax.swing.JCheckBox; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import campaign.*; //public class BarChart3D extends ApplicationFrame public class BarChart3D { public JPanel jpanel; public BarChart3D(String[][] arrStrData) { //super(string);//Windows Form name //String[][] arrStrData = CampOption.getPictureData(myCamp); /*{{"10","项目1","时间段1"}, {"15","项目2","时间段1"}, {"12","项目1","时间段2"}, {"16","项目2","时间段2"}};*/ try{ jpanel = createPanel(createDataset(arrStrData),"综合数据分析","季度值","数值"); jpanel.setPreferredSize(new Dimension(500, 400)); //setContentPane(jpanel); }catch(CategoryDataException e){e.printStackTrace();} } //生成测试数据集 private CategoryDataset createDataset() { DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); defaultcategorydataset.addValue(10.0, "增员数量", "第一季度"); defaultcategorydataset.addValue(4.0, "增员数量", "第二季度"); defaultcategorydataset.addValue(15.0, "增员数量", "第三季度"); defaultcategorydataset.addValue(14.0, "增员数量", "第四季度"); defaultcategorydataset.addValue(5.0, "新客户数量", "第一季度"); defaultcategorydataset.addValue(7.0, "新客户数量", "第二季度"); defaultcategorydataset.addValue(14.0, "新客户数量", "第三季度"); defaultcategorydataset.addValue(3.0, "新客户数量", "第四季度"); return defaultcategorydataset; } //根据传入的数组创建CategoryDataset数据集 private CategoryDataset createDataset(String[][] arrStrData) throws CategoryDataException { if(arrStrData.length==0) throw new CategoryDataException("数组长度为零,不能创建Category数据集。"); if(arrStrData.length>0) if(arrStrData[0].length != 3) throw new CategoryDataException("数组列数不为3,不能创建Category数据集。"); DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); for(int i=0;i<arrStrData.length;i ){ if(arrStrData[i][1].length() == 0) throw new CategoryDataException("数据行" (i 1) "列2长度为0,不能创建Category数据集。"); if(arrStrData[i][2].length() == 0) throw new CategoryDataException("数据行" (i 1) "列3长度为0,不能创建Category数据集。"); defaultcategorydataset.addValue(Double.valueOf(arrStrData[i][0]), arrStrData[i][1], arrStrData[i][2]); } return defaultcategorydataset; } //生成JFreeChart对象 private JFreeChart createChart(CategoryDataset categorydataset, String strChartName, String strAxisName, String strValueAxisName) { JFreeChart jfreechart = ChartFactory.createBarChart3D(strChartName/*数据图名称*/, strAxisName/*时间轴名称*/, strValueAxisName/*数值轴名称*/, categorydataset, PlotOrientation.VERTICAL, true, true, false); CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); categoryplot.setDomainGridlinesVisible(true); CategoryAxis categoryaxis = categoryplot.getDomainAxis(); //设置“Category X”字样的摆放角度,以double类型的数值给出 categoryaxis.setCategoryLabelPositions (CategoryLabelPositions.STANDARD);//double类型的数值 //(CategoryLabelPositions.createUpRotationLabelPositions(0.39269908169872414)); //categoryaxis.setLowerMargin(0.0);//最小的Category距Value轴的距离 //categoryaxis.setUpperMargin(0.0);//最小的Category距对面虚Value轴的距离 //自动分割各个系列之间的距离 //categoryaxis.setCategoryMargin(0.2);//各个Category之间相对于整个时间轴长度的百分比距离 BarRenderer3D barrenderer3d = (BarRenderer3D) categoryplot.getRenderer(); //barrenderer3d.setItemMargin(0.0);//各个render对象之间的距离(即各个柱体之间的距离),不设置则自动调整 //barrenderer3d.setWallPaint(Color.gray);//设置3D侧面墙的颜色 //barrenderer3d.setSeriesPaint(0, Color.GREEN);//设置第一根柱体颜色 barrenderer3d.setDrawBarOutline(true);//是否画棱线(各面相交产生的线段) return jfreechart; } //将JFreeChart对象包装在JPanel对象内 public JPanel createPanel(CategoryDataset categorydataset, String strChartName, String strAxisName, String strValueAxisName) { JFreeChart jfreechart = createChart(categorydataset, strChartName, strAxisName, strValueAxisName); return new ChartPanel(jfreechart); } public JPanel getPanel() { return jpanel; } }
网友回复:如果有帮助的话,别忘了给分哈
网友回复:谢谢,正好需要
关键字:数据,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面