ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:653.24KB ,
资源ID:14510211      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14510211.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java实现各种数据统计图.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

java实现各种数据统计图.docx

1、java实现各种数据统计图java实现各种数据统计图(柱形图,饼图,折线图)分类:Java2012-05-24 22:2822644人阅读评论(29)收藏举报javajfreechartdatasetapplicationclassproperties最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了:1. jfreechart-1.0.13.jar2. jcommon-1.0.16.jar3. gnujaxp.jar先来看一下,最终效果图:主要是jfreechart-1.0.13.jar,但这三个包要齐全,我已经将所有

2、与jfreechart有关的jar包与本文实例的工程(代码)一同压缩上传了,有兴趣的同学可以下载,下载地址:接下来,我们一步步来实现本程序。一,前期准备工作,也就把这三个第三方包添加进本文工程,添加过程特别简单,前面写过一篇博客,讲的是java如何读取Excel表格中的数据(有兴趣的同学可以看一看:1,建,立java项目,在这个项目在建立一个新的文件夹lib;2,将上述三个jar包,复制到lib3,然后右键点击这个java项目,选择Properties4,在左侧列表里选中Java Build Path,右侧选中Libraries5,点击Add JARs6,然后去选择这个项目中lib文件夹中的三

3、个jar,点击确定成功后,项目中会多一个文件夹为:Referenced Libraries二,实现柱形图的java代码:plainview plaincopy1. importjava.awt.Font;2. 3. importorg.jfree.chart.ChartFactory;4. importorg.jfree.chart.ChartPanel;5. importorg.jfree.chart.JFreeChart;6. importorg.jfree.chart.axis.CategoryAxis;7. importorg.jfree.chart.axis.ValueAxis;8.

4、 importorg.jfree.chart.plot.CategoryPlot;9. importorg.jfree.chart.plot.PlotOrientation;10. importorg.jfree.data.category.CategoryDataset;11. importorg.jfree.data.category.DefaultCategoryDataset;12. 13. publicclassBarChart14. ChartPanelframe1;15. publicBarChart()16. CategoryDatasetdataset=getDataSet(

5、);17. JFreeChartchart=ChartFactory.createBarChart3D(18. 水果,/图表标题19. 水果种类,/目录轴的显示标签20. 数量,/数值轴的显示标签21. dataset,/数据集22. PlotOrientation.VERTICAL,/图表方向:水平、垂直23. true,/是否显示图例(对于简单的柱状图必须是false)24. false,/是否生成工具25. false/是否生成URL链接26. );27. 28. /从这里开始29. CategoryPlotplot=chart.getCategoryPlot();/获取图表区域对象30

6、. CategoryAxisdomainAxis=plot.getDomainAxis();/水平底部列表31. domainAxis.setLabelFont(newFont(黑体,Font.BOLD,14);/水平底部标题32. domainAxis.setTickLabelFont(newFont(宋体,Font.BOLD,12);/垂直标题33. ValueAxisrangeAxis=plot.getRangeAxis();/获取柱状34. rangeAxis.setLabelFont(newFont(黑体,Font.BOLD,15);35. chart.getLegend().set

7、ItemFont(newFont(黑体,Font.BOLD,15);36. chart.getTitle().setFont(newFont(宋体,Font.BOLD,20);/设置标题字体37. 38. /到这里结束,虽然代码有点多,但只为一个目的,解决汉字乱码问题39. 40. frame1=newChartPanel(chart,true);/这里也可以用chartFrame,可以直接生成一个独立的Frame41. 42. 43. privatestaticCategoryDatasetgetDataSet()44. DefaultCategoryDatasetdataset=newDe

8、faultCategoryDataset();45. dataset.addValue(100,北京,苹果);46. dataset.addValue(100,上海,苹果);47. dataset.addValue(100,广州,苹果);48. dataset.addValue(200,北京,梨子);49. dataset.addValue(200,上海,梨子);50. dataset.addValue(200,广州,梨子);51. dataset.addValue(300,北京,葡萄);52. dataset.addValue(300,上海,葡萄);53. dataset.addValue(

9、300,广州,葡萄);54. dataset.addValue(400,北京,香蕉);55. dataset.addValue(400,上海,香蕉);56. dataset.addValue(400,广州,香蕉);57. dataset.addValue(500,北京,荔枝);58. dataset.addValue(500,上海,荔枝);59. dataset.addValue(500,广州,荔枝);60. returndataset;61. 62. publicChartPanelgetChartPanel()63. returnframe1;64. 65. 66. 效果图如下:但我们把p

10、rivatestaticCategoryDataset getDataSet()方法中的数据变化一下后,又会形成另一种效果,比如说我们改成:plainview plaincopy1. privatestaticCategoryDatasetgetDataSet()2. DefaultCategoryDatasetdataset=newDefaultCategoryDataset();3. dataset.addValue(100,苹果,苹果);4. dataset.addValue(200,梨子,梨子);5. dataset.addValue(300,葡萄,葡萄);6. dataset.add

11、Value(400,香蕉,香蕉);7. dataset.addValue(500,荔枝,荔枝);8. returndataset;9. 效果图如下:三,实现饼状图的java代码:plainview plaincopy1. packagecom.njue.testJFreeChart;2. 3. importjava.awt.Font;4. importjava.text.DecimalFormat;5. importjava.text.NumberFormat;6. 7. importjavax.swing.JPanel;8. 9. importorg.jfree.chart.ChartFac

12、tory;10. importorg.jfree.chart.ChartPanel;11. importorg.jfree.chart.JFreeChart;12. importorg.jfree.chart.labels.StandardPieSectionLabelGenerator;13. importorg.jfree.chart.plot.PiePlot;14. importorg.jfree.data.general.DefaultPieDataset;15. 16. publicclassPieChart17. ChartPanelframe1;18. publicPieChar

13、t()19. DefaultPieDatasetdata=getDataSet();20. JFreeChartchart=ChartFactory.createPieChart3D(水果产量,data,true,false,false);21. /设置百分比22. PiePlotpieplot=(PiePlot)chart.getPlot();23. DecimalFormatdf=newDecimalFormat(0.00%);/获得一个DecimalFormat对象,主要是设置小数问题24. NumberFormatnf=NumberFormat.getNumberInstance();

14、/获得一个NumberFormat对象25. StandardPieSectionLabelGeneratorsp1=newStandardPieSectionLabelGenerator(02,nf,df);/获得StandardPieSectionLabelGenerator对象26. pieplot.setLabelGenerator(sp1);/设置饼图显示百分比27. 28. /没有数据的时候显示的内容29. pieplot.setNoDataMessage(无数据显示);30. pieplot.setCircular(false);31. pieplot.setLabelGap(0

15、.02D);32. 33. pieplot.setIgnoreNullValues(true);/设置不显示空值34. pieplot.setIgnoreZeroValues(true);/设置不显示负值35. frame1=newChartPanel(chart,true);36. chart.getTitle().setFont(newFont(宋体,Font.BOLD,20);/设置标题字体37. PiePlotpiePlot=(PiePlot)chart.getPlot();/获取图表区域对象38. piePlot.setLabelFont(newFont(宋体,Font.BOLD,1

16、0);/解决乱码39. chart.getLegend().setItemFont(newFont(黑体,Font.BOLD,10);40. 41. privatestaticDefaultPieDatasetgetDataSet()42. DefaultPieDatasetdataset=newDefaultPieDataset();43. dataset.setValue(苹果,100);44. dataset.setValue(梨子,200);45. dataset.setValue(葡萄,300);46. dataset.setValue(香蕉,400);47. dataset.set

17、Value(荔枝,500);48. returndataset;49. 50. publicChartPanelgetChartPanel()51. returnframe1;52. 53. 54. 效果图如下:四,实现折线图的java代码:plainview plaincopy1. packagecom.njue.testJFreeChart;2. 3. importjava.awt.Font;4. importjava.text.SimpleDateFormat;5. 6. importorg.jfree.chart.ChartFactory;7. importorg.jfree.char

18、t.ChartPanel;8. importorg.jfree.chart.JFreeChart;9. importorg.jfree.chart.axis.DateAxis;10. importorg.jfree.chart.axis.ValueAxis;11. importorg.jfree.chart.plot.XYPlot;12. importorg.jfree.data.time.Month;13. importorg.jfree.data.time.TimeSeries;14. importorg.jfree.data.time.TimeSeriesCollection;15. i

19、mportorg.jfree.data.xy.XYDataset;16. 17. publicclassTimeSeriesChart18. ChartPanelframe1;19. publicTimeSeriesChart()20. XYDatasetxydataset=createDataset();21. JFreeChartjfreechart=ChartFactory.createTimeSeriesChart(Legal&General单位信托基金价格,日期,价格,xydataset,true,true,true);22. XYPlotxyplot=(XYPlot)jfreech

20、art.getPlot();23. DateAxisdateaxis=(DateAxis)xyplot.getDomainAxis();24. dateaxis.setDateFormatOverride(newSimpleDateFormat(MMM-yyyy);25. frame1=newChartPanel(jfreechart,true);26. dateaxis.setLabelFont(newFont(黑体,Font.BOLD,14);/水平底部标题27. dateaxis.setTickLabelFont(newFont(宋体,Font.BOLD,12);/垂直标题28. Val

21、ueAxisrangeAxis=xyplot.getRangeAxis();/获取柱状29. rangeAxis.setLabelFont(newFont(黑体,Font.BOLD,15);30. jfreechart.getLegend().setItemFont(newFont(黑体,Font.BOLD,15);31. jfreechart.getTitle().setFont(newFont(宋体,Font.BOLD,20);/设置标题字体32. 33. 34. privatestaticXYDatasetcreateDataset()/这个数据集有点多,但都不难理解35. TimeSe

22、riestimeseries=newTimeSeries(legal&general欧洲指数信任,36. org.jfree.data.time.Month.class);37. timeseries.add(newMonth(2,2001),181.80000000000001D);38. timeseries.add(newMonth(3,2001),167.30000000000001D);39. timeseries.add(newMonth(4,2001),153.80000000000001D);40. timeseries.add(newMonth(5,2001),167.599

23、99999999999D);41. timeseries.add(newMonth(6,2001),158.80000000000001D);42. timeseries.add(newMonth(7,2001),148.30000000000001D);43. timeseries.add(newMonth(8,2001),153.90000000000001D);44. timeseries.add(newMonth(9,2001),142.69999999999999D);45. timeseries.add(newMonth(10,2001),123.2D);46. timeseries.add(newMonth(11,2001),131.80000000000001D);47. timeseries.add(newMonth(12,2001),139.59999999999999D);48. timeseries.add(newMonth(1,2002),142.90000000000001D);49. timeseries.add(newMonth(2,2002),138.69999999999999D);50. timeseries.add(n

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2