java - 如何正确可视化 Prefuse (Java) 表?

标签 java visualization prefuse

我想通过 Prefuse Java 在表中可视化有关汽车的一些数据。 使用了三种重要的数据对象:

  1. PIT(时间点)
  2. 值(包含 Double 形式的 Gas 消耗)
  3. Car(代表汽车的类)

所以首先我将它们放入这样的表中:

car1 | pit1 | value11
car1 | pit2 | value12
car1 | pit3 | value13
car2 | pit1 | value21
car2 | pit2 | value22
car2 | pit3 | value23
car3 | pit1 | value31
car3 | pit2 | value32
car3 | pit3 | value33

使用 Prefuse 项目中的示例,我能够创建一个表格的可视化,其中 x 轴标记为 pit1、pit2 和 pit3,y 轴以正确的顺序标记不同的值。

但是我已经尝试了几个小时,就是以某种方式在相应的点绘制小方 block (例如 car1 的红色方 block ,其中pit1和value11“相遇”)。

我该怎么做?

PS:我也想知道如何通过以下方式改进y轴:

假设最低值为 2.6,最高值为 32.0。 现在,y 轴将从 2.6 开始,只标记每个值(无论实际差异如何,标签之间的间距相同),直到 32.0。 我更喜欢的是标签以 0.0(或 2.0)开始,然后使用 5 左右的步长直到 35。

最佳答案

您希望以散点图形式可视化表格,其中 PIT 位于 x 轴,Value 位于 y 轴,Car 作为标记的颜色(= 矩形)。

如果我理解正确,您会看到轴标签,但没有标记。

您需要将 ColorAction 添加到操作列表中才能看到标记。例如:

ColorAction color = new ColorAction("data", VisualItem.STROKECOLOR,
                ColorLib.rgb(100, 100, 255));

或者使用DataColorAction,它允许您根据汽车以不同颜色可视化标记:

ColorAction color = new DataColorAction("data", "Car", 
                Constants.NOMINAL, VisualItem.FILLCOLOR);

关于 y 轴:如果 prefuse 无法将变量(此处:Value)读取为 double 值,则 prefuse 会绘制每个标签并忽略实际差异。请检查它是否存储为DoubleString。 如果您想从 0.0 开始,您可以设置一个范围模型:

y_axis.setRangeModel(new NumberRangeModel(0, 40, 0, 40)); 

PS:我写了一篇关于prefuse散点图的教程:http://www.ifs.tuwien.ac.at/~rind/w/doku.php/java/prefuse-scatterplot

关于java - 如何正确可视化 Prefuse (Java) 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851655/

相关文章:

java - dbpedia/flash 如何?

graph - 在 Prefuse 中创建数据

lisp - Lisp 中的项目可视化

jquery - 以svg格式获取graphviz中节点/边的注释属性

java - 如何使用具有 JTable 典型功能的 Prefuse 可视化表格

java - 将 Java 类的实例传输到 xml 文件中

java - 如何让 hadoop 忽略\n 输入文件中的字符?

java - 如何正确关闭java-ee websocket连接

java - 由于 Java 8 新的高安全性限制,从桌面运行的 Java Applet 运行时是否会出现一系列高安全性警告?

java - 使用泛型类型的自定义迭代器