JfreeChart自定义票据标签

2023-12-06

我正在使用 JFreechart 在生成的报告中绘制图表JasperReports(实际上我正在使用动态报告它使用 JasperReports)。

我正在策划一个barchart我想在轴上的标签上添加自定义字符串。图片会更好地解释一切。

Now I've got this: enter image description here

I want to obtain this: enter image description here

一些建议?


Here是您问题的解决方案。您需要为每个值提供一个带有文本的新轴

String[] grade =  new String[6];
grade[0] = "String0";
grade[1] = "String1";
grade[2] = "String2";
grade[3] = "String3";
grade[4] = "String4";
grade[5] = "";

SymbolAxis rangeAxis = new SymbolAxis("", grade);
rangeAxis.setTickUnit(new NumberTickUnit(1));
rangeAxis.setRange(0,5);
plot.setRangeAxis(rangeAxis);

enter image description here

这是完整的代码

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Paint;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.axis.SymbolAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;


public class BarChartDemo7 extends ApplicationFrame {

    static class CustomRenderer extends BarRenderer {

        private final Paint[] colors1;
        private final Paint[] colors2;

        public CustomRenderer(Paint[] colors1,Paint[] colors2) {
            this.colors1 = colors1;
            this.colors2 = colors2;
        }

        @Override
        public Paint getItemPaint(int series, int category) {
            if (category == 4)
                return this.colors2[series % this.colors1.length];
            else
                return this.colors1[series % this.colors1.length];
        }
    }


    public BarChartDemo7(String title) {
        super(title);
        CategoryDataset dataSet=createDataset();
        JFreeChart chart=createChart(dataSet);
        ChartPanel panel=new ChartPanel(chart);
        panel.setPreferredSize(new Dimension(800,800));
        setContentPane(panel);
    }


    private static CategoryDataset createDataset() {
        // row keys...
        final String series1 = "ABC";
        final String series2 = "XYZ";

        // column keys...
        final String category1 = "A";
        final String category2 = "B";
        final String category3 = "C";
        final String category4 = "D";
        final String category5 = "E";
        final String category6 = "F";

        // create the dataset...
        final DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        dataset.addValue(0, series1, category1);
        dataset.addValue(1, series1, category2);
        dataset.addValue(4, series1, category3);
        dataset.addValue(3, series1, category4);
        dataset.addValue(2, series1, category5);
        dataset.addValue(4, series1, category6);


        dataset.addValue(4, series2, category1);
        dataset.addValue(0, series2, category2);
        dataset.addValue(0, series2, category3);
        dataset.addValue(4, series2, category4);
        dataset.addValue(3, series2, category1);
        dataset.addValue(2, series2, category2);
        dataset.addValue(1, series2, category5);
        dataset.addValue(4, series2, category4);

        return dataset;
    }



    private static JFreeChart createChart(CategoryDataset dataset) {

        // create the chart...
        JFreeChart chart = ChartFactory.createBarChart(
            "ABC",             
            "",                      
            "",                         
            dataset,                         
            PlotOrientation.HORIZONTAL,        
            true,                            
            true,                            
            false                            
        );

        chart.setBackgroundPaint(Color.white);

        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setBackgroundPaint(Color.WHITE);
        plot.setDomainGridlinePaint(Color.BLACK);
        plot.setRangeGridlinePaint(Color.BLACK);

        String[] grade =  new String[6];
        grade[0] = "String0";
        grade[1] = "String1";
        grade[2] = "String2";
        grade[3] = "String3";
        grade[4] = "String4";
        grade[5] = "";

        SymbolAxis rangeAxis = new SymbolAxis("", grade);
        rangeAxis.setTickUnit(new NumberTickUnit(1));
        rangeAxis.setRange(0,5);
        plot.setRangeAxis(rangeAxis);


        Color[] color1 = new Color[]{Color.red, Color.green,Color.blue};
        Color[] color2 = new Color[]{Color.gray,Color.gray.darker()};
        plot.setRenderer(new CustomRenderer(color1,color2));
        return chart;
    }

    public static void main(String[] args) {
        BarChartDemo7 demo = new BarChartDemo7("ABC");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JfreeChart自定义票据标签 的相关文章

  • Jasper Report 中的 Java Beans 列表中的 pass 列表

    我正在使用 Jasper Report 和 Servlet Bean 团队看起来像 private int tid private String title private List
  • Linux 上的 Jasper 字体

    我在 Windows 上使用 verdana 制作的 jasper 报告不适用于在 red hat linux 下运行 tomcat 的客户端 有没有办法将 verdana ttf 链接到 jasper 或者解决此问题的唯一方法是在服务器端
  • 一个对象(java bean)作为iReport(JasperReports)上的数据源

    我是 iReport 的新手 我必须创建 PDF 报告 使用 JavaBean DataSource 您可以包装 JavaBean 的数组 或集合 但我只需要传递一个对象 仅 JavaBean 的一个实例 我的意思是 我必须在报告中显示 j
  • 无法使用 Jasper 报告库生成 Excel 工作表报告

    我尝试使用以下代码生成 Excel 报告 import java util import net sf jasperreports engine import net sf jasperreports engine export JRXls
  • 为什么图很大时x轴消失了

    我正在尝试使用加载大图JFreeChart 但是 当缓冲图像超过一定大小时 X 轴会出现问题 这些值在 X 轴上消失 这可以在图像的第三张图中看到 I would appreciate any help in fixing the prob
  • iReport:如何隐藏带有文本字段的行,而没有数据行包含不同类型的数据

    我有空文本字段 它包含字符串或大十进制值 放在为我的报告拉出的单行上 该行显示一个空行 为了删除具有空行的空白行 我使用了该属性isRemoveLineWhenBlank对于该行中的报表元素 但这是行不通的 有人可以帮我解决这个问题吗 sn
  • 如何在 JasperReports 中解码 html 实体

    我有一些用 JasperReports 编写的报告 它们按字面意思显示 html 实体 例如 项目符号点 使用 html 实体文本表示显示 8226 你知道有什么办法吗 In the textField设置markup属性为html 这是如
  • 在 JasperReports 中打印何时(到达最后一个元素)表达式

    是否可以生成一个 Print When Expression 来检测 XML 数据源文件中的最后一个元素 基本上 我有一个报告 在详细信息区域的子报告之后插入了分栏符 这样我就可以清楚地定义新记录的开头的新页面 但它总是让我最后一页空白 因
  • JFreeChart:如何在 y 轴上显示小时格式

    我找不到如何修改 y 轴的标签 现在 我将 TimeSeries 与 MINUTE 类一起使用 然后将 TimeSeries 插入数据集中 它看起来像这样 final TimeSeries s1 new TimeSeries Importa
  • 如何在jasper报告中显示少于5行的数据

    我创建了一个报告表 我已将其设置为每页显示 5 行数据 现在的问题是 当数据少于5行时 表格将不会出现 我已经把 V REPORT COUNT 5 0在每个部分 如何修改此公式 以便即使少于 5 行也能显示数据行 抱歉 由于工作繁忙 无法提
  • jasper ireport字段长度问题

    如果我的报告包含太多字段并且已经处于横向模式 则在报告上显示 url 电子邮件数据时 电子邮件地址或 url 字段等少数字段可能太大 我们如何确保报告中的数据不会被截断 您应该选中文本字段上的 strech with Overflow 复选
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 如何使用 JasperReports (6.*) 解决 LinkageError?

    例如我们有 net sf jasperreports engine JRException Caused by net sf jasperreports engine fill JRExpressionEvalException Error
  • iReport:从数据库加载子报表

    我有使用子报表的报表 但由于子报表存储在数据库表中BLOB 我无法在中给出它的路径 url jrxml文件 有没有办法添加一个 jasper从数据库加载的文件 BLOB or InputStream 作为子报表 我想到了 添加列表组件 在列
  • Jasper 报告 - 详细信息不会打印在首页上

    我有一个报告 其中设置了标题带和包含表格的详细信息带 这两个带之间没有间距 当我查看 打印报告时 详细信息区域开始在第 2 页的顶部打印 第 1 页的页眉和页脚之间留有较大的空白区域 如何让详细信息区域直接打印在第 1 页的标题下方 编辑
  • JasperReports 中每个工作表属性一页

    我有一个要求 我必须在 JasperReports 中设计一个报告 该报告有 4 页 第一张纸有 5 页 类似的其他纸有一页或两页 我面临的问题是 如果我使用net sf jasperreports export xls one page
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 如何从报告中访问报告名称属性?

    在 jasper 报表中 使用 iReports Designer 可以将报表名称设置为某个值 在 iReports 中 该值位于报表检查器的最顶层节点上 稍后如何在例如内部访问此参数的值 同一报告的变量或文本字段 在 的帮助下贾斯珀 报告
  • 隐藏特定用户的报告

    我做了一个向下钻取报告包含 5子报告 所有这些都使用连接超级链接部分 我希望用户只查看主要内容向下钻取报告 我的意思是第一个标签向下钻取 如果我设置仅执行的许可ROLE USER 该特定报告不起作用 抛出类似错误Access Denied
  • java中没有这样的方法错误

    我收到以下错误 如下所示 java lang NoSuchMethodError org apache poi hssf usermodel HSSFSheet addMergedRegion Lorg apache poi hssf ut

随机推荐

  • 静态嵌套类可以访问外部类的私有构造函数

    It is stated that 静态嵌套类与其外部的实例成员交互 类 和其他类 就像任何其他顶级类一样 在 结果 静态嵌套类在行为上是一个顶级类 为了打包方便 已经嵌套在另一个顶级类中 那么如何解释这个静态嵌套类可以访问其封闭类的私有构
  • 如何在jmeter中使用jsr 223预处理器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人请帮助我如何使用脚本编写jsr223预处理器在Jmeter和一些examples 任何最好的网站tutorial对于相同的 提前致谢 SIJO
  • Python 3.2 中 __hash__ 是如何实现的?

    我想使自定义对象可哈希 通过酸洗 我能找到 hash Python 2 x 的算法 参见下面的代码 但显然differs来自 Python 3 2 的哈希 我想知道为什么 有谁知道如何 hash 在Python 3 2 中实现 Versio
  • 我如何获得通用参数的类别[重复]

    这个问题在这里已经有答案了 可能的重复 使用反射获取java中泛型参数的类型 如何获取泛型的类 我如何获取通用参数的类 public
  • 为什么 console.log 显示不正确的对象值?

    我不明白为什么console log显示d1包含 100 200 300 在我介绍这些数字之前 常规的for loop显示内部结构d1虽然正确 有人可以解释一下这个行为 错误吗console log在谷歌浏览器中 https jsfiddl
  • 如果 XML 文件为空,则捕获 PHP 错误

    所以我从 XML 文件中获取一些信息 如下所示 url http myurl blah xml simplexml load file url 除了有时 XML 文件是空的 我需要代码正常失败 但我似乎不知道如何捕获 PHP 错误 我试过这
  • Math.random() === Math.random() 是否可能

    在 JavaScript 中 这个表达式在任何浏览器中都会计算为 true 吗 为什么或者为什么不 Math random Math random 注意 请请按字面意思理解上面的代码 我不是问 Math random 是否会生成重复值 注意
  • crm 2016 在线不支持 SetParameter("fetchXml", FetchXml)

    我有这个代码 function FilterCasesSubgrid var CasesSubgrid Xrm Page getControl contact getGrid var CasesSubgrid window parent d
  • XPages ValuePicker 仅限 1000 个

    我使用 valuePicker 和 DojoListTextBox 设计元素 如果我有超过 1 000 个值 则此值选择器最多列出 1 000 条记录 如何增加这个限制 我只是想让它列出我有多少个值
  • AES 填充无效且无法删除

    我正在使用 AES 加密算法来加密和解密项目中的值 我的代码几乎每次都能工作 但有时我会得到Padding is invalid and cannot be removed错误 我的项目是 ASP NET Core 3 1 项目 它发布在
  • 在运行集成测试之前,如何让 Maven 构建等待 Jetty 服务器以分叉模式启动?

    我有一份关于代码覆盖率的报告一体化 test 我确实有集成测试 并且这些测试在 Maven 构建中成功运行 当我单击 HTML 报告右上角的 会话 链接时 我可以在列表中看到我的测试类 但我看不到现在由测试执行的主要类 并且所有覆盖率报告百
  • 如何在C#中的列表框中插入复选框?

    我想要一个代码来在 C Sharp 的列表框中插入一个复选框 选择该复选框后 必须选择列表框中的所有项目 您可以使用 CheckListBox 显示一个列表 其中每个项目旁边都有一个复选框 但是要制作一个选择列表中所有内容的复选框 它必须是
  • socket.io 删除特定侦听器

    我正在使用 Socket io v0 9 16 和 铬34 我正在尝试删除特定侦听器 或取消订阅特定订阅 像这样的东西 socket on testComplete function data console log test comple
  • JavaScript - 如何同时播放多个视频?

    我有一个array我希望同时播放的视频元素 我在网上找到的唯一方法是使用new MediaController 但这似乎并没有得到广泛 如果有支持的话 我期望做的是 var videos document querySelectorAll
  • Kubernetes 上的 Angular(入口路由)

    我需要如何配置 Angular 7 应用程序正在运行的入口 apiVersion extensions v1beta1 kind Ingress metadata name myingress annotations nginx ingre
  • 如何在 R 中建立多项式回归模型?

    我有一个包含 70 个变量的数据集 我想尝试对其进行多项式回归 如果列数是三 四 我可以手动编写这样的代码 model lt lm y poly var1 3 poly var2 3 poly var4 4 如果我们有 70 个变量 我们将
  • 如何创建仅在链接 pthread 时才使用互斥体的库?

    我正在 Linux 上创建一个 C 库 它有多个函数 它们一起对一些全局数据进行操作 为了使这些函数是线程安全的 它们必须在代码中的适当位置使用互斥体 在 Linux 中 为了在应用程序中使用 pthreads 需要链接到适当的库 lp线程
  • 在触摸设备上的浏览器中禁用双击“缩放”选项

    我想要disable the 双击缩放功能性在指定元素上在浏览器中 在触摸设备上 无需禁用所有缩放功能 例如 可以多次点击一个元素来发生某件事 这在桌面浏览器上运行良好 如预期 但在触摸设备浏览器上 它会放大 仅 CSS 解决方案 Add
  • SQL 忽略 WHERE 子句

    M SSMS SQL 我的 WHERE 子句中的这一行抛弃了我的 WHERE 子句的其余部分 WHERE AND b DESIGNATION IS NOT NULL OR c DESIGNATION IS NOT NULL 由于某种原因 当
  • JfreeChart自定义票据标签

    我正在使用 JFreechart 在生成的报告中绘制图表JasperReports 实际上我正在使用动态报告它使用 JasperReports 我正在策划一个barchart我想在轴上的标签上添加自定义字符串 图片会更好地解释一切 Now