java - 是否可以为条形图中的每个类别自定义标签?

标签 java jfreechart

最近我接到一个要求,需要创建一个条形图来显示每个项目的数据。这是一个例子:

Example of the bar chart

如您所见,Category 是项目的名称,Series 是该项目中不同类型的数据。

但是,由于系统不保证项目名称的唯一性,将其用作类别会导致问题,我将无法使用项目名称为不同的项目生成 URL。另一方面,如果我使用唯一 id 作为类别,我将无法显示项目名称。这让我陷入了困境。

所以我的问题是:

有没有办法在 JFreeChart 中即时生成自定义类别标签?

类似于 CategoryItemLabelGenerator 但针对类别本身。所以我可以使用唯一的 Id 作为类别,但在图表中显示项目名称。

最佳答案

答案取决于您选择的 CategoryDataset 如何实现 KeyedValues2D 接口(interface)。该接口(interface)要求键是唯一的,而默认实现 DefaultKeyedValues2D 要求键是Comparable 且不可变。

Unique String 实例是典型的具体参数类型,但 JFreeChart 中没有任何内容强制执行唯一约束。一种方法是将您的 String 包装在一个实现了 Comparable 并强制唯一性的类中。 class Value 是一个 example利用底层 Double 实现。您的实现需要一个额外的属性来区分一个 project 和另一个,可能使用源关系的主键。您可以覆盖 toString() 以获得名称的格式化表示。

关于java - 是否可以为条形图中的每个类别自定义标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10930550/

相关文章:

java - 无法连接到 PostgreSQL 数据库,错误代码 'localhost'

java - 更新 JFreeChart 上的数据

java - 在 Web 应用程序中显示来自本地计算机的 JFree 图表图像

java - 如何在不通过 jfreechart 中的 mousewheellistener 禁用的情况下通过鼠标拖动来禁用缩放?

java - 如何使用 JFreeChart 获取鼠标单击时的点坐标?

java - 如何在安卓应用中设置最大音量?

java - 我应该如何实现一个包含需要以不同语言显示的项目列表的下拉框?

java - 监听 JFreeChart 中的缩放重置事件

java - 您可以使用 session.execute 从 Datastax 驱动程序执行创建表吗?

java - 当本地定义具有不同参数的函数时,无法调用静态导入的重载函数吗?