0

zedgraph をセクションに分割するのに問題があります。実行中のセッションを監視できるようにしたいので、結果、主に速度をグラフに表示するプログラムを作成しようと考えました。結果はテキスト ファイルから読み込まれ、現在は zedgraph の int リストと pointparlist に格納されています。グラフを 3 つのセクションに分割できるようにしたいと考えています。最初の 15% はランニングのウォームアップ部分、中間 (70%) はメインのランニング セッション、最後に 3 番目はクールダウン セッション (15%) です。 . セッション全体をグラフにプロットして、ウォームアップがどこで終了するかを手動で計算しようとする代わりに、ウォームアップと中間の後に垂直線を引くことができるかどうかを知りたかった.

これに関するアドバイスや助けをいただければ幸いです。数日間試してみましたが、Google検索に意図を込めることができません。

グラフにプロットする前に、速度値を格納する int リストを分割する方が良いでしょうか? これに取り組む方法についてアドバイスをお待ちしています。もう一度、どうもありがとう。

4

1 に答える 1

1

簡単な方法は、縦線を 2 本引くと、3 つのセクションになります。コードは次のとおりです。

PointPairList warmUpList = new PointPairList();
    LineItem warmUpCurve = new LineItem("warmUpCurve");
    PointPairList coolingDownList = new PointPairList();
    LineItem coolingDownCurve = new LineItem("coolingDownCurve");

    private void Form1_Load(object sender, EventArgs e)
    {
        // Create an instance of Graph Pane
        GraphPane myPane = zedGraphControl1.GraphPane;

        // x & y variables to store the axis values
        double xVal;
        double yVal;

        // Clear the previous values if any
        warmUpList.Clear();
        coolingDownList.Clear();

        myPane.Legend.IsVisible = false;

        // Create a list using the above x & y values
        warmUpList.Add(myPane.XAxis.Scale.Min + myPane.XAxis.Scale.MajorStep*1.5 , myPane.YAxis.Scale.Max);
        warmUpList.Add(myPane.XAxis.Scale.Min + myPane.XAxis.Scale.MajorStep * 1.5, myPane.YAxis.Scale.Min);

        coolingDownList.Add(myPane.XAxis.Scale.Max - myPane.XAxis.Scale.MajorStep * 1.5, myPane.YAxis.Scale.Max);
        coolingDownList.Add(myPane.XAxis.Scale.Max - myPane.XAxis.Scale.MajorStep * 1.5, myPane.YAxis.Scale.Min);

        // Add the curves
        warmUpCurve = myPane.AddCurve(" ", warmUpList, Color.Red, SymbolType.None);
        coolingDownCurve = myPane.AddCurve(" ", coolingDownList, Color.Red, SymbolType.None);

        TextObj WarmUpTextObj = new TextObj("Warm Up", myPane.XAxis.Scale.Min + myPane.XAxis.Scale.MajorStep, myPane.YAxis.Scale.Max - myPane.YAxis.Scale.MajorStep);
        TextObj RunningTextObj = new TextObj("Running Test", myPane.XAxis.Scale.Max/2, myPane.YAxis.Scale.Max - myPane.YAxis.Scale.MajorStep);
        TextObj CoolingDownTextObj = new TextObj("Cooling Down", myPane.XAxis.Scale.Max - myPane.XAxis.Scale.MajorStep, myPane.YAxis.Scale.Max - myPane.YAxis.Scale.MajorStep);

        myPane.GraphObjList.Add(WarmUpTextObj);
        myPane.GraphObjList.Add(RunningTextObj);
        myPane.GraphObjList.Add(CoolingDownTextObj);

        zedGraphControl1.Refresh();
    }

ここに画像の説明を入力

于 2013-05-13T11:40:19.693 に答える