package com.struts2.jfreechart;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class XYLineChart {
// 字体
private static final Font PLOT_FONT = new Font("宋体", Font.BOLD, 15);
/**
* 创建数据集合
*
* @return CategoryDataset对象
*/
public static CategoryDataset createDataSet() {
// 图例名称
String[] line = { "杀毒软件一", "杀毒软件二", "杀毒软件三" };
// 类别
String[] category = { "2004年", "2005年", "2006年", "2007年", "2008年","2009年","2010年" };
Random random = new Random();// 实例化Random对象
// 实例化DefaultCategoryDataset对象
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
// 使用循环向数据集合中添加数据
for (int i = 0; i < line.length; i++) {
for (int j = 0; j < category.length; j++) {
dataSet.addValue(100000 + random.nextInt(100000), line[i],
category[j]);
}
}
return dataSet;
}
/**
* 生成制图对象
*
* @param is3D 是否为3D效果
* @return JFreeChart对象
*/
public static void main(String[] args) throws IOException{
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("是要3D效果吗?(true/false):");
String is3D = input.next();
JFreeChart chart = null;
if(is3D.equals("true")){
chart = ChartFactory.createLineChart3D(
"2004-2010年优秀杀毒软件杀毒数量统计", //图表标题
"杀毒软件", //X轴标题
"查杀病毒数量", //Y轴标题
createDataSet(), //绘图数据集
PlotOrientation.VERTICAL, //绘制方向
true, //显示图例
true, //采用标准生成器
false //是否生成超链接
);
}else{
chart = ChartFactory.createLineChart(
"2004-2010年优秀杀毒软件杀毒数量统计", //图表标题
"杀毒软件", //X轴标题
"查杀病毒数量", //Y轴标题
createDataSet(),
//绘图数据集
PlotOrientation.VERTICAL, //绘制方向
true, //是否显示图例
true, //是否采用标准生成器
false //是否生成超链接
);
}
//设置标题字体
chart.getTitle().setFont(new Font("隶书", Font.BOLD, 23));
//设置图例类别字体
chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));
chart.setBackgroundPaint(new Color(192,228,106)); //设置背景色
//获取绘图区对象
CategoryPlot plot = chart.getCategoryPlot();
plot.getDomainAxis().setLabelFont(PLOT_FONT); //设置横轴字体
plot.getDomainAxis().setTickLabelFont(PLOT_FONT);//设置坐标轴标尺值字体
plot.getRangeAxis().setLabelFont(PLOT_FONT); //设置纵轴字体
plot.setBackgroundPaint(Color.WHITE); //设置绘图区背景色
plot.setRangeGridlinePaint(Color.RED); //设置水平方向背景线颜色
plot.setRangeGridlinesVisible(true); //设置是否显示水平方向背景线,默认值为true
plot.setDomainGridlinePaint(Color.RED); //设置垂直方向背景线颜色
plot.setDomainGridlinesVisible(true); //设置是否显示垂直方向背景线,默认值为false
//获取折线对象
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
BasicStroke realLine = new BasicStroke(1.6f); //设置实线
float dashes[] = { 8.0f }; //定义虚线数组
BasicStroke brokenLine = new BasicStroke(1.6f, //线条粗细
BasicStroke.CAP_SQUARE, //端点风格
BasicStroke.JOIN_MITER, //折点风格
8.f, //折点处理办法
dashes, //虚线数组
0.0f//虚线偏移量
);
renderer.setSeriesStroke(1, brokenLine); //利用虚线绘制
renderer.setSeriesStroke(2, brokenLine); //利用虚线绘制
renderer.setSeriesStroke(3, realLine); //利用实线绘制
//创建一个文件输出流
FileOutputStream fos=new FileOutputStream("linechart.jpg");
//使用ChartUtilities将图表输出到文件中
ChartUtilities.writeChartAsJPEG(
fos, //输出到哪个输出流
1, //JPEG图片的质量,0-1之间
chart,//统计图表对象
800,//宽
600,//高
null//ChartRenderingInfo信息
);
fos.close();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
次实例是Struts2和JFreeChar的整合,下载后解压导入到ide中,输入http://localhost:8080/Struts2_JFreeChart/jfreechart/jfreeChart.action或者http://localhost:8080/Struts2_JFreeChart/jfreechart/barchart.action就能看到相应的效果
资源推荐
资源详情
资源评论
收起资源包目录
Struts2_JFreeChart.zip (52个子文件)
Struts2_JFreeChart
WebContent
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 964B
classes
com
struts2
actions
BarChartAction.class 3KB
JFreeChartAction.class 2KB
jfreechart
PieChartDemo.class 2KB
ChartUtil.class 4KB
XYLineChart.class 5KB
rrrr.class 2KB
BarChartDemo.class 4KB
struts.xml 1KB
lib
freemarker-2.3.15.jar 859KB
commons-logging-1.0.4.jar 37KB
mysql-connector-java-5.1.17.jar 769KB
jcommon-1.0.16.jar 302KB
struts2-jfreechart-plugin-2.1.8.1.jar 10KB
ognl-2.7.3.jar 234KB
xwork-core-2.1.6.jar 1.49MB
commons-fileupload-1.2.2.jar 58KB
struts2-core-2.1.8.1.jar 738KB
jfreechart-1.0.13.jar 1.36MB
commons-io-2.0.jar 156KB
index.jsp 834B
barchart.jsp 907B
piechart.jsp 5KB
struts.jsp 802B
jsp_jfreechart.jsp 3KB
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 345B
org.eclipse.wst.common.component 484B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 503B
org.eclipse.jdt.core.prefs 395B
src
com
struts2
actions
JFreeChartAction.java 2KB
BarChartAction.java 3KB
jfreechart
PieChartDemo.java 2KB
BarChartDemo.java 4KB
XYLineChart.java 5KB
ChartUtil.java 3KB
rrrr.java 2KB
struts.xml 1KB
abatorConfig.xml 1KB
.project 1KB
.classpath 841B
build
classes
com
struts2
actions
BarChartAction.class 3KB
JFreeChartAction.class 2KB
jfreechart
PieChartDemo.class 2KB
ChartUtil.class 4KB
XYLineChart.class 5KB
rrrr.class 2KB
BarChartDemo.class 4KB
struts.xml 1KB
abatorConfig.xml 1KB
共 52 条
- 1
资源评论
- codercreator2013-05-23基本可以运行,不过打开piechart.jsp有错误。
- luoyuegui2013-06-24可以用。挺好的
江南渔翁
- 粉丝: 6
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- CocosCreator源码资源jump(跳一跳)
- (源码)基于智能物联网的环境监控与预测系统 Safe Lab.zip
- (源码)基于Python和ROS的PX4无人机灯光与报警系统.zip
- CocosCreator源码资源Heroes(精品游戏)
- (源码)基于Python与Arduino的视频转换显示系统-PyToArduinoVideo.zip
- (源码)基于MQTT和InfluxDB的CO2监测系统.zip
- CocosCreator源码资源games(小游戏合集 内含11款)
- 毕业设计《安卓Android校园办公用品管理系统(可导入Studio)》+Java项目源码+文档说明
- 225307陈治宇.pptx
- (源码)基于Arduino的Hotoscope焊接系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功