最近我接到一个要求,需要创建一个条形图来显示每个项目的数据。这是一个例子:
如您所见,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/