我正在使用Jfreechart构建&显示图表。 我想知道,似乎没有标准的方法来检查创建的图表的类型(例如条形图,散点图等)。 目前我正在检查基础图以获得图表类型,但我相信这个选项是有限的,比较散点图和折线图。 有没有更好的方法,在图表类型创建后有所不同?
编辑: 基本上我想在图表上应用数据。我正在使用不同的图表(比如ScatterChart和XYLineChart)。我有一个方法,它将根据图表类型应用数据。两个图表都具有相同的绘图类型,因此我无法区分它们。需要区分,因为我需要更改散点图的形状和线条样式。 我已经通过使用不同的方法来解决这个问题。但那实际上是一个肮脏的解决方法。我遇到了几个问题,在我的情况下,区分图表类型会非常有用。 这就是为什么我要问,如果有标准的方法,获取JFreeChart对象的图表类型
答案 0 :(得分:1)
有没有更好的方法在图表类型创建后区分它?
API没有提供这样的区别。由ChartFactory
中的静态工厂方法构造的数据集(模型)和渲染器(视图)的组合很常见,但并非详尽无遗。这些名称仅供描述。
我正在使用不同的图表,让我们说ScatterChart和XYLineChart ...两个图表都有相同的图表类型,所以我无法区分它们。
特别是,两家工厂都在XYDataset
中构建了一个XYPlot
的图表,并结合了XYLineAndShapeRenderer
。如果不希望进行强制转换,请避开工厂方法并手动构建图表,如图here所示。
更一般地说,请考虑使用strategy pattern,引用here和插图here,以便在运行时选择所需的行为。所选图表类型的enum
在此上下文中可以正常运行。