【问题标题】:How to visualize a Prefuse (Java) Table correctly?如何正确可视化 Prefuse (Java) 表?
【发布时间】:2012-01-13 13:56:36
【问题描述】:

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

  1. PIT(时间点)
  2. 值(包含作为 Double 消耗的 gas)
  3. Car(代表 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 轴具有正确顺序的不同值。

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

我该怎么做?

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

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

【问题讨论】:

  • 如果您发布您已经在工作的代码会有所帮助。

标签: java visualization prefuse


【解决方案1】:

您希望在散点图中可视化您的表格,其中 PIT 位于 x 轴,值位于 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 绘制每个标签并忽略实际差异,如果它无法将变量(此处:值)读取为双精度。请检查是否存储为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多