package tool;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.util.Random;
import org.jfree.chart.ChartFactory;
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 ChartUtil {
//字体
private static final Font PLOT_FONT = new Font("宋体", Font.BOLD, 15);
/**
* 创建数据集合
* @return CategoryDataset对象
*/
public static CategoryDataset createDataSet() {
String[] line = { "电影", "电视剧", "其他" }; //图例名称
String[] category = { "1","2", "3", "4","5","6","7","8","9","10","11","12" };//类别
Random random = new Random();//实例化Random对象
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();//实例化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 JFreeChart createChart(boolean is3D) {
JFreeChart chart = null;
if(is3D){
chart = ChartFactory.createLineChart3D(
"年度视屏访问量的统计", //图表标题
"视屏种类", //X轴标题
"视屏访问量", //Y轴标题
createDataSet(), //绘图数据集
PlotOrientation.VERTICAL,//绘制方向
true, //显示图例
true, //采用标准生成器
false //是否生成超链接
);
}else{
chart = ChartFactory.createLineChart(
"年度视屏访问量的统计", //图表标题
"视屏种类", //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); //利用实线绘制
return chart;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
jsp折线报表图的实线
共33个文件
jar:9个
java:5个
class:5个
5星 · 超过95%的资源 需积分: 10 14 下载量 121 浏览量
2012-07-26
17:10:26
上传
评论
收藏 3.05MB RAR 举报
温馨提示
最近研究统计与报表的实现,在网上查了一下,主流的是一个叫做jfreechart的插件,学习了一下,实现了折线图报表,一幅图上面同时实现多条折线,有实线也有虚线,根据需要不同可以取舍。
资源推荐
资源详情
资源评论
收起资源包目录
ChartTest.rar (33个子文件)
ChartTest
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.core.resources.prefs 67B
org.eclipse.wst.common.component 465B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 500B
org.eclipse.jdt.core.prefs 364B
src
tool
User.java 43B
DataConnection.java 3KB
Media.java 684B
ChartServlet.java 3KB
ChartUtil.java 5KB
.project 2KB
WebRoot
META-INF
MANIFEST.MF 36B
WEB-INF
web.xml 1KB
classes
tool
User.class 247B
ChartUtil.class 4KB
ChartServlet.class 3KB
DataConnection.class 4KB
Media.class 1KB
lib
jfreechart-1.0.14-swt.jar 71KB
junit.jar 118KB
swtgraphics2d.jar 15KB
jfreechart-1.0.14-experimental.jar 13KB
jcommon-1.0.17.jar 303KB
gnujaxp.jar 226KB
jfreechart-1.0.14.jar 1.39MB
iText-2.1.5.jar 1.07MB
servlet.jar 78KB
result.jsp 941B
index.jsp 980B
.mymetadata 300B
.classpath 2KB
.myeclipse
共 33 条
- 1
资源评论
- kuitianxing2014-07-10还行,可能是我也不太会用,生成的图片看着很丑陋。。。。
- canying6292015-07-17jfreechart还是包含了很多种类的图形报表的,楼主给的只有2D和3D的折线图的,不过例子可以跑,能作为参考,谢谢分享!
- buhui200182012-07-26解压后可以运行啊,初学jsp,很好啊!!
村中少年
- 粉丝: 1w+
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功