文档章节

JFreeChart柱形图-豆果

lcyanxi
 lcyanxi
发布于 2017/08/16 16:16
字数 443
阅读 6
收藏 0

#自定义柱形图颜色 ##参数说明 * @param chartTitle 标题 * @param categoryLabel x轴标题 * @param valueLabel y轴标题 * @param rowKeys 每个柱形图的名称 * @param columnKeys x轴数据名称 * @param data 数据 * @param chartPath 生成图片地址


    public static void buildBarChat2(String chartTitle, String categoryLabel, String valueLabel, String[] rowKeys,
                                    String[] columnKeys, double[][] data, String chartPath) {

        CategoryDataset datasetNew = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

        //创建主题样式
        StandardChartTheme mChartTheme = new StandardChartTheme("CN");
        //设置标题字体
        mChartTheme.setExtraLargeFont(new Font("黑体", Font.BOLD, 24));
        //设置轴向字体
        mChartTheme.setLargeFont(new Font("黑体", Font.PLAIN, 15));
        //设置图例字体
        mChartTheme.setRegularFont(new Font("黑体", Font.PLAIN, 15));
        //应用主题样式
        ChartFactory.setChartTheme(mChartTheme);

        JFreeChart chart = ChartFactory.createBarChart(chartTitle, categoryLabel, valueLabel, datasetNew, PlotOrientation.VERTICAL,
                true, false, false);

        CategoryPlot plot = chart.getCategoryPlot();
        // 设置网格背景颜色
         plot.setBackgroundPaint(Color.white);
        // 设置网格竖线颜色
        // plot.setDomainGridlinePaint(Color.pink);
        // 设置网格横线颜色
        // plot.setRangeGridlinePaint(Color.pink);

        //x轴
        CategoryAxis mDomainAxis = plot.getDomainAxis();
        //设置x轴标题的字体
        mDomainAxis.setLabelFont(new Font("黑体", Font.PLAIN, 18));
        //设置x轴坐标字体
        mDomainAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 16));
        //y轴
        ValueAxis mValueAxis = plot.getRangeAxis();
        //设置y轴标题字体
        mValueAxis.setLabelFont(new Font("黑体", Font.PLAIN, 18));
        //设置y轴坐标字体
        mValueAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 16));

        // 自定每个柱的颜色
        String[] colorValues = { "#19A15F", "#4C8BF5","#087112", "#2E6FAF","#5A5AD6", "#292798","#08D1F0" };
        BarRenderer renderer = (BarRenderer) plot.getRenderer();

        for (int i=0;i<rowKeys.length;i++){
            renderer.setSeriesPaint(i, Color.decode(colorValues[i]));
        }
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        renderer.setBaseItemLabelsVisible(true);

        // 默认的数字显示在柱子中,通过如下两句可调整数字的显示
        // 注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
        renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,
                TextAnchor.BASELINE_RIGHT));
        renderer.setItemLabelAnchorOffset(10D);
        renderer.setItemMargin(0.1);
        //去掉阴影
        renderer.setShadowVisible(false); 
        //去掉渐变色
        renderer.setBarPainter( new StandardBarPainter() );
        renderer.setItemMargin(-0.01);

        plot.setRenderer(renderer);

        //
        File file = new File(chartPath);

        try {
            if (!file.exists()) {
                file.createNewFile();
            }
          //生成图片
            ChartUtilities.saveChartAsJPEG(file, chart, 1500, 1000);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

##效果图 输入图片说明

© 著作权归作者所有

lcyanxi
粉丝 8
博文 31
码字总数 15872
作品 0
黔江
程序员
私信 提问
通过鼠标拖动来修改JFreeChart序列值

通过鼠标拖动来修改JFreeChart序列值 最近因一个应用的需要,要通过鼠标的拖动来修改序列的值,在网上查了好多资料,都没有找到好的实现,在CSDN也有不少这方面的询问贴子。在参考网上前人资...

郭先生
2010/11/26
365
2
JFreeChart学习示例

JFreeChart 是Java平台上一个开放的图表绘制类库,它完全使用Java语言编写,是为applications, applets, servlets 以及JSP等使用所设计。 JFreeChart可以生成饼图(pie)、柱状图(bar)、散...

长平狐
2013/01/06
157
0
JFreeChart 绘制折线图问题

这是我绘制折线图的代码,数据我都存在 ExcelObject excel 这个对象里面, 我要绘制三条折线,但这三条折线的数据差异比较大,所以没法再一个屏幕上全部显示三条折线,有什么好的办法让三条折...

小边
2015/01/23
356
1
Web图表开发工具JFreeChart与ChartDirector使用评测

在Web开发中,图形和图表是常用的数据呈现方式,图表能将枯燥的数据生动的表现出来。也许你正接手一个Web图表开发项目,却被Web图表开发工具选型的问题困扰着,要么是价格昂贵,要么就是部署...

咲晚杍
2013/08/21
768
0
Jfreechart绘制漂亮的图表

要想绘制出漂亮的图表,就必须了解图表的构成部分,将图表进行分解成N个部分。 然后再对每一个部分进行渲染,设置样式:包括背景色、轮廓线条样式和颜色、填充颜色、字体大小、样式、颜色。同...

扁-哥
2014/06/11
18K
49

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
14分钟前
2
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
55分钟前
5
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
56分钟前
4
0
webpack插件html-webpack-plugin

本文转载于:专业的前端网站→webpack插件html-webpack-plugin 1、插件安装 npm install html-webpack-plugin --save-dev 2、插件使用 webpack.config.js配置文件为: var htmlWebpackPlugin=...

前端老手
今天
6
0
数据挖掘

zhengchen1996
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部