我将多个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图中添加点的图例?
非常感谢任何提示或想法
答案 0 :(得分:1)
图例显示支持IILLegendDataProvider
界面的对象的信息。 ILPoints
没有。目前存在两个对象,它们适合与ILLEND一起用于conjunctino:ILLinePlot
和ILContourPlot
。您有几种选择:
请改用ILLinePlot
。您可以隐藏线条,仅在线条图上使用标记。这也将立即启用图例。如果点数合理的低,这个解决方案是可行的,因为标记的绘制成本很高。
创建源自ILPoints
或ILGroup
的自定义类。在其上实现IILLegendDataProvider
接口。将图例添加为您的班级的兄弟。这仅适用于ILNumerics Ultimate VS,因为在Community Edition中没有创建自定义场景图对象的选项。