是否可以在ILNumerics中反转色彩映射?我现在正在使用Jet彩色地图,并希望将其反转,使蓝色位于顶部,红色位于底部,如何在不反转所有点的z值的情况下执行此操作?
这是我的代码:
//p are the points im plotting
ILSurface surface = new ILSurface(p, colormap: Colormaps.Jet);
产生这个:
答案 0 :(得分:2)
您可以从曲面(或从ILColormap实例)检索当前色彩映射,并简单地反转色彩映射中各个颜色映射项的位置。在我的例子中,colordata的第一行被镜像视图覆盖:
private void ilPanel1_Load(object sender, EventArgs e) {
ILArray<float> A = ILSpecialData.sincf(40, 50);
ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) {
new ILSurface(A) { new ILColorbar() }
});
// fetch surface
var surface = ilPanel1.Scene.First<ILSurface>();
// fetch current colormap data
ILArray<float> cmdata = surface.Colormap.Data;
// invert their positions
cmdata[":;0"] = cmdata["end:-1:0;:"];
// make new colormap and assign
surface.Colormap = new ILColormap(cmdata);
// configure after all modifications
surface.Configure();
}
之后,cmdata用于创建一个新的色彩映射,而不是分配给曲面。