我有一个ILPlotCube,它有三个不同的ILContourPlot。
this.scene = new ILScene();
ILPlotCube pc = new ILPlotCube(twoDMode: false);
ILArray<float> TA = tempRoom.GetILArray("TA");
ILContourPlot cpa = new ILContourPlot(TA, create3D: false) {new ILColorbar(), new ILLegend()};
ILArray<float> TB = tempRoom.GetILArray("TB");
ILContourPlot cpb = new ILContourPlot(TB, create3D: false) {new ILColorbar(), new ILLegend()};
ILArray<float> TC = tempRoom.GetILArray("TC");
ILContourPlot cpc = new ILContourPlot(TC, create3D: false) {new ILColorbar(), new ILLegend()};
pc.Add(cpa);
pc.Add(cpb);
pc.Add(cpc);
scene.Add(pc);
ilPanel1.Scene = this.scene;
ilPanel1.Refresh();
当我将ILLegend和ILColorbar添加到这些ILContourPlots时,我得到三个,并且所有三个都有不同的数据范围(例如,plot1:red = 50,plot2:red = 100,plot3:red = 150)。
如何设置这些ILContourPlots以使用相同的数据范围(例如,Min = 0,Max = 200)?
基本上我想要和这个问题一样,但ILContourPlots没有UpdateColormapped-method和dataRange-property: Same color bar for multiple surfaces in ILNumerics PlotCube
编辑:我可以为每个ILArray添加所需数据范围的虚拟最小值和最大值,但这是一种难看的修复,它也会弄乱轮廓。
答案 0 :(得分:0)
你应该使用ILCountourPlot
的重载,它采用轮廓级别规范的集合并明确定义每个级别:
ILArray<float> A = ILMath.tosingle(ILSpecialData.terrain);
panel.Scene.Camera.Add(new ILPlotCube("SO", twoDMode: false) {
Children = {
new ILGroup(translate: new Vector3(0,0,10)){
new ILContourPlot(A["0:250;0:250"], new List<ContourLevel>() {
new ContourLevel() { Value = 1000, LineWidth = 3, LineStyle = DashStyle.Dotted },
new ContourLevel() { Value = 3000, LineWidth = 3, LineStyle = DashStyle.Dotted },
new ContourLevel() { Value = 4000, LineWidth = 3, LineStyle = DashStyle.Dotted },
new ContourLevel() { Value = 5500, LineWidth = 3, LineStyle = DashStyle.Dotted },
}) { new ILColorbar() }
},
new ILContourPlot(A["150:400;150:400"], new List<ContourLevel>() {
new ContourLevel() { Value = 1000, LineWidth = 3 },
new ContourLevel() { Value = 3000, LineWidth = 3 },
new ContourLevel() { Value = 4000, LineWidth = 3 },
new ContourLevel() { Value = 5500, LineWidth = 3 },
})
},
Projection = Projection.Perspective,
});
注意,您可以为每个轮廓级别定义单独的颜色。但是,这样做显然会破坏轮廓水平值与色彩图中颜色之间的关系。因此,一旦您开始指定单个颜色,轮廓图将不再被视为“颜色映射”,并且颜色条将不会显示。
这里,由于我们仅为轮廓水平选择了值,因此将挑选来自颜色图的相应颜色并且映射值&lt; - &gt;颜色仍然完好无损。
轮廓图文档:http://ilnumerics.net/individual-contour-levels-configuration.html