jfreechart如何利用jfreechart生成柱状,饼状,折线形图形。

jfreechart  时间:2021-06-16  阅读:()

用jfreechart怎么生成类似于这样的图片

这个是个完整的代码,保存路径是临时文件。

public class CategoryItemChart { public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h,ArrayList list) { String filename = null; try { CategoryDataset dataset = createDataset(list); JFreeChart chart = ChartFactory.createBarChart( "",//图表标题 "",//X轴标题 "",//Y轴标题 dataset,//数据集合 PlotOrientation.VERTICAL,//图表显示方向(水平、垂直) true,//是否使用图例 true,//是否使用工具提示 false//是否为图表增加URL ); /*------------配置图表属性--------------*/ chart.setBackgroundPaint(Color.white); // 1,设置整个图表背景颜色 CategoryPlot plot = chart.getCategoryPlot(); /*------------设定Plot参数-------------*/ plot.setBackgroundPaint(Color.white); // 2,设置详细图表的显示细节部分的背景颜色 plot.setDomainGridlinePaint(Color.black); // 3,设置垂直网格线颜色 plot.setDomainGridlinesVisible(false); // 4,设置是否显示垂直网格线 plot.setRangeGridlinePaint(Color.yellow); // 5,设置水平网格线颜色 plot.setRangeGridlinesVisible(false); //6,设置是否显示水平网格线 /*---------将所有数据转换为整数形式---------*/ final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); /*---------设置是否在柱图的状态条上显示边框----*/ CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer(); BarRenderer render = (BarRenderer) plot.getRenderer(); // render.setItemMargin(0.0); // render.setMinimumBarLength(0.0); /*---------设置状态条颜色的深浅渐变-----------*/ GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(255,200, 80), 0.0f, 0.0f, new Color(255, 255, 40)); GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, new Color(50,255, 50), 0.0f, 0.0f, new Color(100, 255, 100)); GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,0.0f, new Color(255, 100, 100)); GradientPaint gp3 = new GradientPaint(0.0f, 0.0f, new Color(108,108, 255), 0.0f, 0.0f, new Color(150, 150, 200)); renderer.setSeriesPaint(0, gp0); renderer.setSeriesPaint(1, gp1); renderer.setSeriesPaint(2, gp2); renderer.setSeriesPaint(3, gp3); /* * * 解决柱状体与图片边框的间距问题 * * * */ /*------设置X轴标题的倾斜程度----*/ CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.E / 6.0)); /*------设置柱状体与图片边框的左右间距--*/ domainAxis.setLowerMargin(0.06); domainAxis.setUpperMargin(0.06); /*------设置柱状体与图片边框的上下间距---*/ ValueAxis rAxis = plot.getRangeAxis(); rAxis.setUpperMargin(0.3); rAxis.setLowerMargin(0.3); /*---------设置每一组柱状体之间的间隔---------*/ render.setItemMargin(0.01); /* * * 解决柱状体与图片边框的间距问题 * * * */ /* * * * 解决JFREECHART的中文显示问题 * * * */ /*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/ chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); /*----------设置标题字体--------------------------*/ TextTitle textTitle = chart.getTitle(); textTitle.setFont(new Font("黑体", Font.PLAIN, 20)); /*------设置X轴坐标上的文字-----------*/ domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); /*------设置X轴的标题文字------------*/ domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); /*------设置Y轴坐标上的文字-----------*/ rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14)); /*------设置Y轴的标题文字------------*/ rAxis.setLabelFont(new Font("黑体", Font.PLAIN, 12)); /*---------设置柱状体上的显示的字体---------*/ renderer.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 12)); renderer.setBaseItemLabelGenerator(new LabelGenerator(0.0)); renderer.setBaseItemLabelsVisible(true); /* * * * 解决JFREECHART的中文显示问题 * * * */ /*------得到chart的保存路径----*/ ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session); /*------使用printWriter将文件写出----*/ ChartUtilities.writeImageMap(pw, filename, info, true); pw.flush(); } catch (Exception e) { System.out.println("Exception - " + e.toString()); e.printStackTrace(System.out); filename = "public_error_500x300.png"; } return filename; } /*-------------设置柱状体顶端的数据显示--------------*/ static class LabelGenerator implements CategoryItemLabelGenerator { private double threshold; public LabelGenerator(double threshold) { this.threshold = threshold; } public String generateLabel(CategoryDataset dataset, int row, int column) { String result = null; final Number value = dataset.getValue(row, column); if (value != null) { final double v = value.doubleValue(); if (v > this.threshold) { result = value.toString(); } } return result; } public String generateRowLabel(CategoryDataset dataset, int row) { return null; } public String generateColumnLabel(CategoryDataset dataset, int column) { return null; } } /*-----------数据集合封装-------------*/ private static CategoryDataset createDataset(ArrayList list) { String s1 = "1"; String s2 = "2"; String c1 = "1"; String c2 = "2"; /*-------------封装图表使用的数据集-------------*/ DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.setValue(44, s1, c1); dataset.setValue(48, s2, c2); return dataset; } }

如何在eclipse中配置JFreeChart

web.xml按下面配置就行了 <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class&.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/servlet/DisplayChart</url-pattern> </servlet-mapping>

jfreechart 以周为单位,怎么做啊?

Axis();//设置x轴,也就是时间轴 x1Axis.setAutoRange(false);//设置不采用自动设置时间范围 try{ x1Axis.setRange(dateFormat.parse("2007-08-20"),dateFormat.parse("2007-09-29"));//设置时间范围,注意时间的最大值要比已有的时间最大值要多一天 }catch(Exception e){ e.printStackTrace(); } x1Axis.setTimeline(SegmentedTimeline.newMondayThroughFridayTimeline());//设置时间线显示的规则, x1Axis.setAutoTickUnitSelection(false);//设置不采用自动选择刻度值 x1Axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);//设置标记的位置 x1Axis.setStandardTickUnits(DateAxis.createStandardDateTickUnits());//设置标准的时间刻度单位 x1Axis.setTickUnit(new DateTickUnit(DateTickUnit.DAY,7));//设置时间刻度的间隔,一般以周为单位 x1Axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd"));//设置显示时间的格式

jfreechart柱状图上显示数据

加上这两句: renderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); renderer.setSeriesItemLabelsVisible(0, true);

jfreechart在JSP中怎么配置

请问你有没有使用IDE(集成开发功具)比如说:Eclipse或是Netbeans再或是JBuilder 如果你都没有使用,只是安装了JDK和JRE那就按如下方法去作吧! 1:jfreechart的安装文件你都备齐了没.它的官方提供的安装文件至少应该包括以下文件jfreechart_0.9.21.zip和mon-0.9.6.zip 这是我所用的版本号.现在估计都到1.0版本了.这里要说的是mon-0.9.6.zip这个安装文件必不可少. 把这两个压缩文件打开,找到我们所需要的三个重要jar文件.它们分别是mon-0.9.6.jar jfreechart-0.9.21.jar 和 gnujaxp.jar 不要多,也不要少. 2:把这三个文件.放在%JAVA_HOME%/lib中去,(这一步你也做了.)请检查你的JAVA_HOME这个环境变量设的对不对.它应该是JDK的安装根目录.拿我的为例,我的JDK安装目录为C:progJavajdk1.5.0_12.注意不是JRE的安装目录. 3:把此时三个文件所在的路径都放到CLASSPATH中去.以JDK安装目录为C:progJavajdk1.5.0_12为例.则需要在CLASSPATH这个环境变量后面附加上以下内容;C:progJavajdk1.5.0_12libjfreechart-0.9.21.jar;C:progJavajdk1.5.0_12libmon-0.9.6.jar;C:progJavajdk1.5.0_12libgnujaxp.jar; 检查你的有没有弄错. 4:最关键一步,如果你前三步都没有搞错,那好恭喜你了.你可能只是操作错误. 现在用一个程序来检验一下.我们刚才的安装. (请务一定必确认你的JDK和JRE安装正常),办法就是进入命令行.在任何一个目录下 键入java -version并回车.如果返回的java版本信息正常.说明没有问题.

如何利用jfreechart生成柱状,饼状,折线形图形。

随便几句话是说不清的。

推荐你看风中叶的struts2视频(到电驴上面搜下),大概到第二十几讲是关于jfreechart的。

不过我做他的实验时有乱码,下面附上jfreechart的流程和乱码解决方案。

创建一个数据源(dataset)来包含将要在图形中显示的数据 >>创建一个 JFreeChart 对象来代表要显示的图形 >>把图形输出 重要的类和接口: org.jfree.data.general.Dataset 所有数据源类都要实现的接口 org.jfree.chart.ChartFactory 由它来产生 JFreeChart 对象 org.jfree.chart.JFreeChart 所有对图形的调整都是通过它噢!! org.jfree.chart.plot.Plot 通过JFreeChart 对象获得它,然后再通过它对图形外部部分(例:坐标轴)调整 注意:它有很多子类,一般都下嗍造型到它的子类! org.jfree.chart.renderer.AbstractRenderer 通过JFreeChart 对象获得它,然后再通过它对图形内部部分 (例:折线的类型)调整。

同样,针对不同类型的报表图,它有 着不同的子类实现! jfreechart中文乱码问题解决方案(转) 柱状图(CategoryPlot): CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象 CategoryAxis domainAxis=plot.getDomainAxis(); //水平底部列表 domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14)); //水平底部标题 domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12)); //垂直标题 ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状 rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15)); chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15)); 饼图(PiePlot): JFreeChart chart = ChartFactory.createPieChart3D("IT行业职业分布图", dataset, true, false, false); chart.getTitle().setFont(new Font("黑体",Font.BOLD,20));//设置标题字体 PiePlot piePlot= (PiePlot) chart.getPlot();//获取图表区域对象 piePlot.setLabelFont(new Font("黑体",Font.BOLD,10)); chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,10)); 时序图(TimeSeries) XYPlot plot = (XYPlot) chart.getPlot(); //纵轴字体 plot.getRangeAxis().setLabelFont(new Font("宋体", Font.BOLD, 15)); //横轴框里的标题字体 chart.getLegend().setItemFont(new Font("宋体", Font.ITALIC, 15)); //横轴列表字体 plot.getDomainAxis().setTickLabelFont(new Font("新宋体", 1, 15)); //横轴小标题字体 plot.getDomainAxis().setLabelFont(new Font("新宋体", 1, 12)); 折线图 chart.getTitle().setFont(new Font("宋体", Font.BOLD, 15)); chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15)); CategoryAxis domainAxis = plot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/ domainAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 11)); /*------设置X轴的标题文字------------*/ domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis(); /*------设置Y轴坐标上的文字-----------*/ numberaxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 12)); /*------设置Y轴的标题文字------------*/ numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12))

ZJI全新上架香港站群服务器,4C段238个IP月付1400元起

ZJI本月新上线了香港葵湾机房站群服务器,提供4个C段238个IPv4,支持使用8折优惠码,优惠后最低每月1400元起。ZJI是原Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月更名为ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务,所选数据中心均为国内普遍访问速度不错的机房。葵湾二型(4C站群)CPU:I...

UCloud云服务器香港临时补货,(Intel)CN2 GIA优化线路,上车绝佳时机

至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...

RackNerd 黑色星期五5款年付套餐

RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...

jfreechart为你推荐
ae序列号安装AE,序列号是什么意思?4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?snake模型什么是S-L头模型?createfile失败惠普机看机提示create file fail 无法进桌面郭列90后三无人物,如何创业?如何去实现人生价值?webservice框架什么是webservice,什么情况下使用,如何使用爱码验证码平台接码验证码接收平台如何使用?东兴证券网站东兴证券超强版下载,东兴证券超强版v6下载官方网站,东兴证券软件下载在线沟通什么是在线状态?particular教程particular的用法
备案未注册域名 cn域名个人注册 187邮箱 云网数据 主机评测 bandwagonhost 搬瓦工官网 10t等于多少g 正版win8.1升级win10 本网站在美国维护 100m免费空间 seednet 169邮箱 域名评估 静态空间 河南移动网 美国网站服务器 33456 优酷黄金会员账号共享 论坛主机 更多