点传奇

时间:2014-09-15 16:49:20

标签: ilnumerics

我将多个3d点集添加到绘图立方体中,如下所示:

points 
|> List.map (fun (z, size, color, label) ->
    let points = new ILPoints(label)
    points.Positions <- positionBuffer z
    points.Size <- float32 size
    points.Color <- new System.Nullable<Color>(color)
    points)
|> List.iter (fun points -> plotcube.Add points)

这很好用,我可以随意指定颜色和大小。现在我想展示 每组点的图例条目。但是,当我以简单的方式做到这一点时

let legend = 
   new ILLegend(points |> List.map (fun (z, size, color, label) -> label) |> List.toArray)
plotcube.Add(legend)

我得到一个空的传说。我怎样才能让它发挥作用?是否可以在3d图中添加点的图例?

非常感谢任何提示或想法

1 个答案:

答案 0 :(得分:1)

图例显示支持IILLegendDataProvider界面的对象的信息。 ILPoints没有。目前存在两个对象,它们适合与ILLEND一起用于conjunctino:ILLinePlotILContourPlot。您有几种选择:

  1. 请改用ILLinePlot。您可以隐藏线条,仅在线条图上使用标记。这也将立即启用图例。如果点数合理的低,这个解决方案是可行的,因为标记的绘制成本很高。

  2. 创建源自ILPointsILGroup的自定义类。在其上实现IILLegendDataProvider接口。将图例添加为您的班级的兄弟。这仅适用于ILNumerics Ultimate VS,因为在Community Edition中没有创建自定义场景图对象的选项。