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

华为云(69元)828促销活动 2G1M云服务器

华为云818上云活动活动截止到8月31日。1、秒杀限时区优惠仅限一单!云服务器秒杀价低至0.59折,每日9点开抢秒杀抢购活动仅限早上9点开始,有限量库存的。2G1M云服务器低至首年69元。2、新用户折扣区优惠仅限一单!购云服务器享3折起加购主机安全及数据库。企业和个人的优惠力度和方案是不同的。比如还有.CN域名首年8元。华为云服务器CPU资源正常没有扣量。3、抽奖活动在8.4-8.31日期间注册并...

ParkInHost - 俄罗斯VPS主机 抗投诉 55折,月付2.75欧元起

ParkInHost主机商是首次介绍到的主机商,这个商家是2013年的印度主机商,隶属于印度DiggDigital公司,主营业务有俄罗斯、荷兰、德国等机房的抗投诉虚拟主机、VPS主机和独立服务器。也看到商家的数据中心还有中国香港和美国、法国等,不过香港机房肯定不是直连的。根据曾经对于抗投诉外贸主机的了解,虽然ParkInHost以无视DMCA的抗投诉VPS和抗投诉服务器,但是,我们还是要做好数据备...

BuyVM迈阿密KVM上线,AMD Ryzen 3900X+NVMe硬盘$2/月起

BuyVM在昨天宣布上线了第四个数据中心产品:迈阿密,基于KVM架构的VPS主机,采用AMD Ryzen 3900X CPU,DDR4内存,NVMe硬盘,1Gbps带宽,不限制流量方式,最低$2/月起,支持Linux或者Windows操作系统。这是一家成立于2010年的国外主机商,提供基于KVM架构的VPS产品,数据中心除了新上的迈阿密外还包括美国拉斯维加斯、新泽西和卢森堡等,主机均为1Gbps带...

jfreechart为你推荐
ct10000中国电信网上营业厅贸易配额什么是配额,配额与关税配额是同一个吗???bean是什么意思在jdbc的DAO是什么意思?还有bean?财务系统软件常用财务软件有哪些?excel大写金额EXCEL如何显示出汉字大写金额pat是什么格式pat是什么格式的文件啊broadcast播哈尔滨哪里有卖broadcast播 这个服装品牌的动画分镜头脚本请问什么是动画分镜头脚本,什么是电影分镜头脚本以及什么是广告分镜头脚本?怎样删除聊天记录如何删除聊天particular教程有没有制作花瓣飘落的AE教程
网站域名空间 linuxapache虚拟主机 ibrs 怎么测试下载速度 赞助 海外空间 镇江高防 国外代理服务器 聚惠网 japanese50m咸熟 godaddyssl 此网页包含的内容将不使用安全的https easypanel linux命令vi rewrite规则 瓦工招聘 ddos攻击 suspended翻译 六维空间登陆首页 更多