JFreeChart柱状图的颜色设置与宽度分配
来源:互联网 发布:卡尔曼滤波c语言 编辑:程序博客网 时间:2024/06/05 15:17
JFreeChart柱状图的颜色设置与宽度分配
针对情况
1.在进行颜色的设置之后,柱状图变细不符合要求
2.发现x轴或y轴的刻度不能很好的与柱状图对应
一:首先来说一下颜色的设置:
render.setSeriesPaint(0,Color.RED);
render.setSeriesPaint(1,Color.BLUE);
render.setSeriesPaint(2,Color.GRAY);
// 默认数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Set<String> keySet=ClassUtil.jyOVMap.keySet(); // 用户数据 for (int i = 0; i < list.size(); i++) { dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); }
在配合
render.setSeriesPaint(0,Color.RED); render.setSeriesPaint(1,Color.BLUE); render.setSeriesPaint(2,Color.GRAY);
由于这个数据里面只有一种类型,所以只有render.setSeriesPaint(0,Color.BLUE);这条语句得到的执行,那他出来的结果就是粗细相同,颜色一致为红,有十五条柱的柱状图(按本人的数据)
二:让前三根变成红色,后三根变成灰色:
如果用
for (int i = 0; i < list.size(); i++) { dataset.addValue(list.get(i).getScore(),i,list.get(i).getReviewtype()); }
再搭配
最后生成的图片为针对一
如果用
render.setSeriesPaint(0,Color.RED); render.setSeriesPaint(1,Color.BLUE); render.setSeriesPaint(2,Color.GRAY);
再搭配
// 默认数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Set<String> keySet=ClassUtil.jyOVMap.keySet(); // 用户数据for (int i = 0; i < list.size(); i++) { if(i<3){ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OA,list.get(i).getReviewtype()); }else if(i<12){ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); }else{ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OC,list.get(i).getReviewtype()); } }
那么最后生成的图片就是针对情况2
颜色分配总结:
类型(好比我代码中的ClassUtil.ZYJZG_OA)的个数决定了你每一组(好比我代码中的list.get(i).getReviewtype())数据中颜色的种类,就拿上面的代码来说,我们知道他每一组数据中其实应该包含三种颜色,但是由于我的代码中仅仅显示了某一种颜色,所以每一组只展示了一种颜色,他的宽的是颜色一致的宽度的三分之一
为了证明我的观点,我们将代码改成:
for (int i = 0; i < list.size(); i++) { if(i<3){ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OA,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OC,list.get(i).getReviewtype()); }else if(i<12){ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OA,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OC,list.get(i).getReviewtype()); }else{ dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OA,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OC,list.get(i).getReviewtype()); } }
他的生成结果是
三.宽度还是颜色一致时候的宽度,但是颜色要达到前三根是红色,后三根是灰色
首先类型使用一种
// 默认数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Set<String> keySet=ClassUtil.jyOVMap.keySet(); // 用户数据 for (int i = 0; i < list.size(); i++) { dataset.addValue(list.get(i).getScore(),ClassUtil.ZYJZG_OB,list.get(i).getReviewtype()); }
然后我们需要自定义一个类,继承IntervalBarRenderer,重写getItemPaint方法,其中这个方法中的参数f就是代表从0开始的第f跟柱子
public class CustomRenderer extends IntervalBarRenderer { public Paint getItemPaint(int i, int j) { if(j<3){ return Color.RED; }else if(j<12){ return Color.BLUE; }else{ return Color.GRAY; } }}
然后再代码中将原先的BarRenderer替换成自定义的CustomRenderer
//设置图形对象的属性 BarRenderer render = new CustomRenderer();//自定义图形对象 render.setShadowVisible(false);//取消柱子的阴影效果 render.setDrawBarOutline(false); render.setMaximumBarWidth(0.4); //设置柱子宽度 render.setMinimumBarLength(0.00); //设置柱子高度 //在柱子上显示相应信息 render.setBaseItemLabelsVisible(true); render.setBaseItemLabelPaint(Color.BLACK);//设置数值颜色,默认黑色 render.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); //设置不显示边框线 render.setDrawBarOutline(false); //render.setSeriesPaint(0,new Color(131,175,155)); // render.setBarPainter( new StandardBarPainter() );//取消渐变色 //render.setItemMargin(-0.01); plot.setRenderer(render);
注意最后plot.setRenderer(render);
// 获得图标区域对象 CategoryPlot plot = freeChart.getCategoryPlot();
生成图片
阅读全文
1 0
- JFreeChart柱状图的颜色设置与宽度分配
- JFreeChart设置柱状图的宽度, 禁止缩放
- jfreechart柱状图设置指定两种颜色
- JFreeChart中柱状图的详细设置
- JFreeChart中柱状图的详细设置
- JFreeChart中柱状图的详细设置
- JFreeChart中柱状图的详细设置
- JFreeChart中柱状图的详细设置
- JFreeChart中柱状图的详细设置
- JfreeChart实现柱状图的每根柱子颜色不同
- (3)Jfreechart柱状图自定义柱子颜色以及柱子的方向
- jfreechart 设置柱形图宽度
- jfreechart 设置柱形图宽度
- jfreechart的柱状图处理
- JFreeChart的柱状图实现
- highcharts柱状图设置颜色渐变的效果
- 为echarts的叠加柱状图设置颜色
- jfreechart 设置线条颜色的方法
- Bixby在中国市场上线,三星推动智能手机全面跨入AI时代
- 一个双线性配对(双线性映射)的例子
- guava缓存
- 原生XHR对象
- 微信小程序之起步(更新中)
- JFreeChart柱状图的颜色设置与宽度分配
- NLP开源框架
- BZOJ2115: [Wc2011] Xor(异或方程组)
- Kafka集群搭建
- CG插画入门教程之人体动态基础与面部画法分析
- QT 使用Pixmap绘制图像
- 分布式、代数式、整体度量
- 谈谈微信
- 欢迎使用CSDN-markdown编辑器