关于绘制等值线(C#)的任何想法?

时间:2014-03-04 23:24:04

标签: c# graph

我已经编写了一个代码来绘制我的色彩映射结果图片上的等值线。我在想如何改进它以更好地呈现信息。 显示每个等值线将是有趣的。和这张照片一样:

picture

您对我的代码申请有什么建议吗? 或者您认为使用不同颜色的等值线并且每个等值线颜色都有关键部分会更好吗?

这是我的代码完美无缺。

double[] isoLineValueArray = new double[this.isoLineNumber];
double dVal = (valueMax - valueMin) / (this.isoLineNumber + 1);
double currentVal = valueMin;
for (int i = 0; i < this.isoLineNumber; i++)
{
    currentVal += dVal;
    isoLineValueArray[i] = currentVal;
}
for (int v = 0; v < isoLineValueArray.Length; v++)
{
    // cycle though all nodes 
    for (int i = 0; i < nx-1 ; i++)
    {
        for (int j = 0; j < ny-1 ; j++)
        {
            dxSum4 = dxSum4 + nx;
            dySum4 = dySum4 + ny;

            // nodal position
            centerPoint.X = (dxSum4 - startXPos) / (endXPos - startXPos) *
                (double)(xAxisPosition[this.nTicks - 1] - xAxisPosition[0]) +
                (double)xAxisPosition[0];
            centerPoint.Y = -theSpace.TheCells[i, j, 0].YCellDimension +
                (dySum4 - startYPos) / (endYPos - startYPos) *
                (double)(yAxisPosition[this.nTicks - 1] - yAxisPosition[0]) +
                (double)yAxisPosition[0];

            // reset 
            dxSum4 = 0.0;
            dySum4 = 0.0;

            // add to line list
            lineList.AddRange(myLineGenerator.DetermineLines(...));
        }
    }
}

1 个答案:

答案 0 :(得分:2)

不是使用不同颜色的等值线,而是可以使用背景颜色的关键部分和与等值线的位置对应的数字,并保留单色的等值线。太多的颜色可能令人不安。

像这样的东西,其中每个数字和水平线对应于等值线位置:

suggested look of isolines