java做曲线图柱状图数据统计13页文档资料.docx
- 文档编号:7179069
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:18
- 大小:23.93KB
java做曲线图柱状图数据统计13页文档资料.docx
《java做曲线图柱状图数据统计13页文档资料.docx》由会员分享,可在线阅读,更多相关《java做曲线图柱状图数据统计13页文档资料.docx(18页珍藏版)》请在冰豆网上搜索。
java做曲线图柱状图数据统计13页文档资料
如何引用jar包
教师范读的是阅读教学中不可缺少的部分,我常采用范读,让幼儿学习、模仿。
如领读,我读一句,让幼儿读一句,边读边记;第二通读,我大声读,我大声读,幼儿小声读,边学边仿;第三赏读,我借用录好配朗读磁带,一边放录音,一边幼儿反复倾听,在反复倾听中体验、品味。
project--->projectproperties--->左侧选择path--->右侧选择requiredlibraries--->add--->archives,然后找到你要导入的包,点击OK即可
单靠“死”记还不行,还得“活”用,姑且称之为“先死后活”吧。
让学生把一周看到或听到的新鲜事记下来,摒弃那些假话套话空话,写出自己的真情实感,篇幅可长可短,并要求运用积累的成语、名言警句等,定期检查点评,选择优秀篇目在班里朗读或展出。
这样,即巩固了所学的材料,又锻炼了学生的写作能力,同时还培养了学生的观察能力、思维能力等等,达到“一石多鸟”的效果。
JFREECHARTDOCUMENT
家庭是幼儿语言活动的重要环境,为了与家长配合做好幼儿阅读训练工作,孩子一入园就召开家长会,给家长提出早期抓好幼儿阅读的要求。
我把幼儿在园里的阅读活动及阅读情况及时传递给家长,要求孩子回家向家长朗诵儿歌,表演故事。
我和家长共同配合,一道训练,幼儿的阅读能力提高很快。
JFreeChart核心对象类介绍
类名
类的作用以及简单描述
JFreeChart
图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。
JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
XXXXXDataset
数据集对象,用于提供显示图表所用的数据。
根据不同类型的图表对应着很多类型的数据集对象类
XXXXXPlot
图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
XXXXXAxis
用于处理图表的两个轴:
纵轴和横轴
XXXXXRenderer
负责如何显示一个图表对象
XXXXXURLGenerator
用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator
用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
下面以柱状图和饼图以及折线图为例,介绍图形创建方法。
1)柱状图
org.jfree.chart.ChartFactory这个工厂类有
createBarChart、
createStackedBarChart、
createBarChart3D、
createStackedBarChart3D,这几个工厂方法创建不同类型的柱状图,比较重要的是PlotOrientation.VERTICAL让平行柱垂直显示,而PlotOrientation.HORIZONTAL则让平行柱水平显示。
对柱状图影响较大的几个类包括:
org.jfree.chart.axis.CategoryAxis、
org.jfree.chart.axis.ValueAxis、
org.jfree.chart.renderer.BarRenderer、
org.jfree.chart.renderer.BarRenderer3D。
具体实现步骤:
(1)创建用于图形生成所要的数据集对象。
CategoryDatasetdataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);
其中:
rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。
(2)创建图形对象。
JFreeChartchart=ChartFactory.createBarChart3D(
"标题",//图形的标题
null,//X轴标题
null,//Y轴标题
dataset,//数据
PlotOrientation.VERTICAL,,//图表方向
true,//是否显示图例
false,//启用热键
false)//启用超键接
createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,该类继承自JFreeChart。
(3)设置图形显示的属性
a)ValueAxis类,设置柱到图上下边的距离。
实现方法是:
ValueAxisrangeAxis=plot.getRangeAxis();
设置最高的一个柱与图片顶端的距离:
rangeAxis.setUpperMargin(0.15)
设置最低的一个柱与图片底端的距离:
rangeAxis.setLowerMargin(0.15)
b)org.jfree.chart.renderer.BarRenderer3D类,设置图形上显示的数值。
实现方法如下:
BarRenderer3Drenderer=newBarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
设置Wall的颜色:
renderer.setWallPaint(Color.gray);
设置每个柱的颜色:
renderer.setSeriesPaint(0,newColor(0,0,255));
renderer.setSeriesPaint(1,newColor(0,100,255));
renderer.setSeriesPaint(2,Color.GREEN);
设置每个柱的Outline颜色
renderer.setSeriesOutlinePaint(0,Color.BLACK);
renderer.setSeriesOutlinePaint(1,Color.BLACK);
renderer.setSeriesOutlinePaint(2,Color.BLACK);
设置每个地区所包含的平行柱之间的距离
renderer.setItemMargin(0.1);
显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(newStandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(newFont("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
为图形加入超连接
renderer.setItemURLGenerator(newStandardCategoryURLGenerator());
renderer.setToolTipGenerator(newStandardCategoryToolTipGenerator());
柱状图DEMO:
packagecom.cons.jfreechart;
importjava.awt.Color;
importjava.io.File;
importjava.io.FileOutputStream;
importorg.jfree.chart.ChartFactory;
importorg.jfree.chart.ChartPanel;
importorg.jfree.chart.ChartRenderingInfo;
importorg.jfree.chart.ChartUtilities;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.axis.NumberAxis3D;
importorg.jfree.chart.entity.StandardEntityCollection;
importorg.jfree.chart.plot.CategoryPlot;
importorg.jfree.chart.plot.PlotOrientation;
importorg.jfree.chart.plot.XYPlot;
importorg.jfree.chart.renderer.category.BarRenderer;
importorg.jfree.chart.renderer.category.BarRenderer3D;
importorg.jfree.chart.renderer.xy.XYBarRenderer;
importorg.jfree.chart.renderer.xy.XYItemRenderer;
importorg.jfree.data.category.CategoryDataset;
importorg.jfree.data.category.DefaultCategoryDataset;
importorg.jfree.ui.ApplicationFrame;
importorg.jfree.ui.RefineryUtilities;
publicclassBarChartDemoextendsApplicationFrame{
publicBarChartDemo(){
super("");
*获取一个演示用的简单数据集对象
*@return
privatestaticCategoryDatasetgetDataSet(){
DefaultCategoryDatasetdataset=newDefaultCategoryDataset();
dataset.addValue(100,null,"苹果");
dataset.addValue(200,null,"梨子");
dataset.addValue(300,null,"葡萄");
dataset.addValue(400,null,"香蕉");
dataset.addValue(500,null,"荔枝");
returndataset;
*获取一个演示用的组合数据集对象
*@return
privatestaticCategoryDatasetgetDataSet2(){
DefaultCategoryDatasetdataset=newDefaultCategoryDataset();
dataset.addValue(100,"北京","苹果");
dataset.addValue(100,"上海","苹果");
dataset.addValue(100,"广州","苹果");
dataset.addValue(200,"北京","梨子");
dataset.addValue(200,"上海","梨子");
dataset.addValue(200,"广州","梨子");
dataset.addValue(300,"北京","葡萄");
dataset.addValue(300,"上海","葡萄");
dataset.addValue(300,"广州","葡萄");
dataset.addValue(400,"北京","香蕉");
dataset.addValue(400,"上海","香蕉");
dataset.addValue(400,"广州","香蕉");
dataset.addValue(500,"北京","荔枝");
dataset.addValue(500,"上海","荔枝");
dataset.addValue(500,"广州","荔枝");
returndataset;
*@paramargs
publicstaticvoidmain(String[]args){
CategoryDatasetdataset=getDataSet2();
JFreeChartchart=ChartFactory.createBarChart3D(
"水果产量图",//图表标题
"水果",//目录轴的显示标签
"产量",//数值轴的显示标签
dataset,//数据集
PlotOrientation.VERTICAL,//图表方向:
水平、垂直
true,//是否显示图例(对于简单的柱状图必须是false)
false,//是否生成工具
false//是否生成URL链接
CategoryPlotplot=chart.getCategoryPlot();
BarRenderer3Drenderer3D=(BarRenderer3D)plot.getRenderer();
//BarRenderer3Drenderer3D=newBarRenderer3D();
renderer3D.setSeriesPaint(0,Color.ORANGE);//设置柱子的颜色
renderer3D.setSeriesPaint(1,Color.RED);
renderer3D.setSeriesPaint(2,Color.BLACK);
//NumberAxis3DnumberAxis3D=(NumberAxis3D)plot.getRangeAxis();
//numberAxis3D.setStandardTickUnits(NumberAxis3D.createIntegerTickUnits());
ChartPanelchartPanel=newChartPanel(chart);
chartPanel.setPreferredSize(newjava.awt.Dimension(500,270));
Filefos_jpg=null;
FileOutputStreamoutputStream=null;
ChartRenderingInfoinfo=newChartRenderingInfo(newStandardEntityCollection());
try{
fos_jpg=newFile("D:
\\fruite.jpg");
outputStream=newFileOutputStream("D:
\\fruite1.jpg");
ChartUtilities.saveChartAsJPEG(fos_jpg,chart,500,270);
ChartUtilities.writeChartAsJPEG(outputStream,chart,500,270);
outputStream.close();
}catch(Exceptione){
//TODO:
handleexception
BarChartDemobarChartDemo=newBarChartDemo();
barChartDemo.pack();
barChartDemo.add(chartPanel);
RefineryUtilities.centerFrameOnScreen(barChartDemo);
barChartDemo.setVisible(true);
注意:
3D的柱状图和2D的柱状图做法是一样的,如果纯粹画图就不要继承ApplicationFrame
2)饼图
具体实现步骤:
1)创建用于图形生成所要的数据集对象。
首先实例化类DefaultPieDatasetdataset=newDefaultPieDataset()。
然后利用DefaultPieDataset类提供的setValue(value1,value2)方法,把从数据库里提取的数据存入DefaultPieDataset对象。
其中value1是数据名称、value2是数据值。
2)创建图形对象。
首先实例化JFreeChartchart=ChartFactory.createPieChart3D(title,
dataset,
true,
true,
false)
createPieChart3D方法是用于饼图生成的主要方法。
其中title代表图形的标题、
dataset就是DefaultPieDataset对象的实例。
3)设置图形显示的属性。
Stringfilename=ServletUtilities.saveChartAsPNG(jFreeChart,700,450,info,session);
ChartUtilities.writeImageMap(pw,filename,info);
pw.flush()
saveChartAsPNG方法在ServletUtilities工厂类定义完成。
主要用于把图形对象JFreeChart以图片的形式保存。
其中的jFreeChart就是
JFreeChart对象的实例。
该方法返回一个文件名。
writeImageMap(pw,filename,info)方法用于把保存的图片文件以字节流的形式写入用户界面。
其中pw是java.io包的PrintWriter类的实例对象,该对象创建一个图形输出流。
Filename是输出图片的文件名。
该文件名来自ServletUtilities.saveChartAsPNG方法创建。
参数info用于图形信息的显示。
用ChartRenderingInfoinfo=newChartRenderingInfo(newStandardEntityCollection())创建。
最后输出完成图形,调用pw.flush()方法关闭IO流。
packagecom.cons.jfreechart;
importjava.awt.Color;
importjava.awt.Font;
importjava.io.*;
importorg.jfree.data.general.DefaultPieDataset;
importorg.jfree.chart.*;
importorg.jfree.chart.plot.PiePlot3D;
publicclassPieChartDemo{
*获取一个演示用的简单数据集对象
*@return
privatestaticDefaultPieDatasetgetDataSet(){
DefaultPieDatasetdataset=newDefaultPieDataset();
dataset.setValue("苹果",100);
dataset.setValue("梨子",200);
dataset.setValue("葡萄",300);
dataset.setValue("香蕉",400);
dataset.setValue("荔枝",500);
returndataset;
*@paramargs
publicstaticvoidmain(String[]args){
DefaultPieDatasetdata=getDataSet();
JFreeChartchart=ChartFactory.createPieChart3D("水果产量图",//图表标题
data,
true,//是否显示图例
false,
false
PiePlot3DpiePlot3D=(PiePlot3D)chart.getPlot();
//piePlot3D.setLabelGap(0.02D);
//piePlot3D.setCircular(true);//设置是否以圆型来显示
piePlot3D.setLabelFont(newFont("SansSerif",3,12));//设置字体
piePlot3D.setSectionOutlinePaint(Color.BLACK);//设置轮廓线颜色
//piePlot3D.setSectionOutlineStroke(piePlot3D.DEFAULT_LABEL_OUTLINE_STROKE);
piePlot3D.setSectionOutlinesVisible(false);
//piePlot3D.setNoDataMessage("Nodataavailable");
//写图表对象到文件,参照柱状图生成源码
Filefile=newFile("D:
/pieFruite.jpg");
try{
ChartUtilities.saveChartAsJPEG(file,chart,500,270);
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
3)折线图
折线图的dataset两种CatagoryDataset接口(具体实现类是DefaultCategoryDataset),XYDataset接口体实现步骤:
1、首先实例化类XYSeriesfirdtSeries=newXYSeries(“线的名称”);然后利用XYSeries类提供的add(value1,value2)方法,把从数据库里提取的数据存入XYSeries对象。
其中value1是数据名称、value2是数据值。
然后实例化XYSeriesCollectioncollection=newXYSeriesCollection();最后返回collection
2、创建图形对象。
//createthechart...
JFreeChartchart=ChartFactory.createXYLineChart(
title,//charttitle(图表标题)
"X",//xaxislabel(横坐标名称)
"Y",//yaxislabel(纵坐标名称)
dataset,//data(数据)
PlotOrientation.VERTICAL,//图表方向(水平、垂直)
true,//includelegend(是否显现图例)
true,//tooltips
true//urls
3、保存显示图片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 曲线图 柱状图 数据 统计 13 文档 资料