2013-05-12 1 views
0

zedgraph를 여러 섹션으로 나누는 데 문제가 있습니다. 실행중인 세션을 모니터링 할 수 있기를 원하며 그래프를 중심으로 내 결과를 표시하는 프로그램을 작성하려고합니다. 결과는 텍스트 파일에서 읽혀지며, 현재 zedgraph의 int 목록과 pointparlist에 저장됩니다. 그래프를 3 개의 섹션으로 나눌 수 있기를 원합니다. 처음 15 %는 실행의 워밍업 부분이고, 중간 (70 %)은 기본 실행 세션이고, 마지막 세 번째 세션은 냉각 세션 (15 %)입니다. . 그래프에서 전체 세션을 플로팅하는 대신 수동으로 워밍업이 끝나는 곳을 알아 내려고 노력했습니다. 워밍업 및 중간 후에 수직선을 배치 할 수 있는지 알고 싶었습니다.Zed-graph를 수직선으로 세 부분으로 나눠 분리하는 방법은 무엇입니까?

나는 이것에 대해 조언이나 도움을 주시면 대단히 감사하겠습니다. 며칠 동안 노력하고 있지만 의미가 있다면 Google 검색에 내 의도를 넣을 수는 없습니다.

그래프에 플로팅하기 전에 속도 값을 저장하는 int 목록을 분할하는 것이 더 좋은 방법일까요? 이 문제를 해결하는 방법에 대한 조언을드립니다. 다시 한번 많은 사람들에게 감사드립니다.

답변

1

간단한 방법은 두 개의 수직선을 그린 다음 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(); 
    } 

enter image description here

: 여기 코드는
관련 문제