ILNumerics,LinePlot,CreateTicksAuto

时间:2014-05-16 13:14:15

标签: c# scale axis ilnumerics line-plot

我正在尝试缩放LinePlot的xaxis。 x 的每个值都必须除以50,因为数据的测量值为50hz。

xRange大约是[0,大约7000],并且应该是[0,1 / 50,2 / 50,...,7000/50]作为缩放的x轴。可悲的是,我无法发布图片,需要更多的声誉...

C#代码是:

private void ilPanel1_Load(object sender, EventArgs e)
    {
        Windpark windpark = new Windpark(quelldatei,hz,anzFreq);            
        float[] a = windpark.readData();
        float[] b = windpark.mittelwertAbzug(a);
        ILArray<float> B = ILMath.array(b);
        ILArray<float> Fit = ILMath.convert<double, float>(windpark.findeFit(B)); 

        var scene = new ILScene {
        new ILPlotCube {                 
            new ILLinePlot(Fit.T, lineColor: Color.Blue,lineWidth:2),
            new ILLinePlot(B.T, lineColor: Color.Yellow)
                        }
            };
        ilPanel1.Scene = scene;            
    }

我尝试使用CrateTicksAuto()方法,但不知道如何使用它

public static List<float> CreateTicksAuto(
float min,
float max,
int numberTicks

我非常感谢任何帮助!

祝你好运

基督教


解决了问题......我按照here中的描述制作了标记。它以(array.length / 10)的步长生成十个刻度。 我的解决方案如下:

private void ilPanel1_Load(object sender, EventArgs e)
    {
        Windpark windpark = new Windpark(quelldatei,hz,anzFreq);            
        float[] a = windpark.readData();
        float[] b = windpark.mittelwertAbzug(a);
        ILArray<float> B = ILMath.array(b);
        ILArray<float> Fit = ILMath.convert<double, float>(windpark.findeFit(B));     
                var scene = new ILScene() ;
                var plotCube =scene.Add(new ILPlotCube {                    
                    new ILLinePlot(B.T, lineColor: Color.Yellow),
                    new ILLinePlot(Fit.T, lineColor: Color.Black,lineWidth:3)
                });
                for (int i = 0; i < Fit.Length; i =i+(int)ILMath.round((double)Fit.Length/  10.0))
                {
                    var tick = plotCube.Axes.XAxis.Ticks.Add(i, (i/hz).ToString());
                }
                    ilPanel1.Scene = scene;


    }
}

0 个答案:

没有答案