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

易探云韩国云服务器仅50元/月,510元/年起

韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...

阿里云服务器绑定域名的几个流程整理

今天遇到一个网友,他之前一直在用阿里云虚拟主机,我们知道虚拟主机绑定域名是直接在面板上绑定的。这里由于他的网站项目流量比较大,虚拟主机是不够的,而且我看他虚拟主机已经有升级过。这里要说的是,用过阿里云虚拟主机的朋友可能会比较一下价格,实际上虚拟主机价格比云服务器还贵。所以,基于成本和性能的考虑,建议他选择云服务器。毕竟他的备案都接入在阿里云。这里在选择阿里云服务器后,他就蒙圈不知道如何绑定域名。这...

Megalayer促销:美国圣何塞CN2线路VPS月付48元起/香港VPS月付59元起/香港E3独服月付499元起

Megalayer是新晋崛起的国外服务器商,成立于2019年,一直都处于稳定发展的状态,机房目前有美国机房,香港机房,菲律宾机房。其中圣何塞包括CN2或者国际线路,Megalayer商家提供了一些VPS特价套餐,譬如15M带宽CN2线路主机最低每月48元起,基于KVM架构,支持windows或者Linux操作系统。。Megalayer技术团队行业经验丰富,分别来自于蓝汛、IBM等知名企业。Mega...

jfreechart为你推荐
订房系统酒店管理系统包括哪些子系统mergefield如何自动生成准考证和批量打印,请高手们指教存储区域网络nas、das、san 三种网络环境的区分youtube创始人我的世界captainsparklez是谁listviewitem怎么获取ListView里Item中的控件举报非法网站如何举报非法网站?averagesPoisson-Arrivals-See-Time-Averages是什么意思comexception电脑出现ConnectException: 是什么原因?qq管家官网在qq电脑管家官网有个可以登录qq的。登录上了可以加速么?sms是什么短信验证是什么?
免费网站域名注册 西安域名注册 VPS之家 免费com域名申请 linode日本 softlayer 免费名片模板 服务器cpu性能排行 灵动鬼影 美国十次啦服务器 空间论坛 怎么测试下载速度 lick 免费个人主页 卡巴斯基试用版下载 杭州电信 美国服务器 cc加速器 监控主机 qq空间登陆首页 更多