ILNumerics绘制2d图表

时间:2014-03-22 21:53:26

标签: c# .net plot 2d ilnumerics

您好我在ILArray中保存了2d矩阵数据<双>。这个矩阵表示来自一个神经元的神经网络的权重,我想看看权重如何与ilnumerics一起看。知道我该怎么办?我找到了许多用于3d绘图的示例,但没有用于绘制2D图像数据表示。

1 个答案:

答案 0 :(得分:1)

目前,图像数据是利用ILSurface可视化的最佳(最简单)数据。由于这是3D绘图,因此您可能无法获得大图像数据的最佳性能。幸运的是,ILNumerics'场景图使您可以轻松地使用自己的实现来改进它。

最简单的尝试将采用ILPoints形状,在网格中排列所需数量的点,并让每个点可视化输入矩阵中相应元素的值 - 让我们用颜色(或大小)来表示。

private void ilPanel1_Load(object sender, EventArgs e) {
    using (ILScope.Enter()) {
        // some 'input matrix'
        ILArray<float> Z = ILSpecialData.sincf(40, 50);
        // do some reordering: prepare vertices
        ILArray<float> Y = 1, X = ILMath.meshgrid(
                            ILMath.vec<float>(1, Z.S[1]), 
                            ILMath.vec<float>(1,Z.S[0]),
                            Y); 
        // reallocate the vertex positions matrix
        ILArray<float> pos = ILMath.zeros<float>(3, X.S.NumberOfElements); 
        // fill in values
        pos["0;:"] = X[":"]; 
        pos["1;:"] = Y[":"]; 
        pos["2;:"] = Z[":"]; 

        // colormap used to map the values to colors
        ILColormap cmap = new ILColormap(Colormaps.Hot);
        // setup the scene
        ilPanel1.Scene.Add(new ILPlotCube {
            new ILPoints() {
                Positions = pos, 
                Colors = cmap.Map(Z).T, 
                Color = null
            }
        }); 
    }
}

enter image description here

显然,结果点不随表格缩放。所以&#39;图像&#39;当形状尺寸增加时,在点之间存在较大的间隙。因此,为了更好地实现,您可以调整方法以使用ILTriangles而不是ILPoints,以便组合相邻的矩形。