LinePlot の xaxis をスケーリングしようとしています。データは 50hz の測定値からのものであるため、xのすべての値を50 で割る必要があります。
xRange は約 [0,ca.7000] で、スケーリングされた x 軸として [0,1/50,2/50,...,7000/50] になります。悲しいことに、私は画像を投稿できません。もっと評判が必要です...
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
)
どんな助けにもとても感謝しています!
よろしくお願いします
キリスト教徒
問題を解決しました...ここで説明されているように目盛りを作成しました。(array.length/10) のステップで 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;
}
}