2014-11-11 2 views
1

다음 코드가 있습니다. 테스트 할 x 및 y 값을 하드 코드했습니다. 그리고 (0, -0.5) 점 (0, -0.5)에 대한 이유가 무엇입니까? (1, -0.5) 나에게 무슨 일이 일어나고 있는지 모르겠다. 다른 값을 입력하면 그래프가 제대로 표시되기 때문이다.winform에서 차트가 잘못 표시됨

foreach (var grp in q) 
      { 
       point = new DataPoint(); 
       Sum1 = grp.Sum1 > 2 ? 2 : grp.Sum1; 
       Sum1 = Sum1 < -2 ? -2 : Sum1; 

       Sum2 = grp.Sum2 > 2 ? 2 : grp.Sum2; 
       Sum2 = Sum2 < -2 ? -2 : Sum2; 

       point.XValue = 0; 
       point.YValues = new double[] { -0.5 }; 

       chart1.Series.Add(grp.Id.ToString()); 
       chart1.Series[grp.Id.ToString()].ChartType = SeriesChartType.Point; 
       chart1.Series[grp.Id.ToString()].Label = grp.Id.ToString(); 
       chart1.Series[grp.Id.ToString()].Points.Add(point); 
       chart1.Series[grp.Id.ToString()].ToolTip = "THEMES = " + Sum1 + "\n PRICES = " + Sum2; 
       chart1.Series[grp.Id.ToString()].LabelToolTip = "THEMES = " + Sum1 + "\n PRICES = " + Sum2; 
       chart1.Series[grp.Id.ToString()].MarkerSize = 11; 

       chart1.Update(); 

       if (grp.Id.ToString() == "WW" || grp.Id.ToString() == "PB" 
        || grp.Id.ToString() == "AJ" || grp.Id.ToString() == "AK") 
       { 
        avgTheme += (float)Sum1; 
        avgPrice += (float)Sum2; 
        count++; 
       } 
      } 

enter image description here

UPDATE :

추가 할 필요가 줄을 만 .NET 4.5

  chart1.Series["ABC"].CustomProperties = "IsXAxisQuantitative=True"; 

답변

1

이 정말 이상해와 함께 작동! 버그를 믿기 힘들 것 같습니다. 나는 놀았지만 Series에서 0을 지정하기 위해 단일 Point을 설정하는 방법이 없다는 것을 확인 만 할 수있었습니다.

업데이트 .. Chart 여전히 광기에 일부 시스템이있을 수 있으므로-병이 설명되어 있습니다 - 나는이 약이 무엇인지 알고 싶어

S1.ChartType = SeriesChartType.Point; 

for (int i=0; i < 2; i++) 
{ 
    DataPoint point = new DataPoint(); 
    point.SetValueXY(i, -0.5); 
    if (i > 0) point.Color = Color.Transparent; 
    S1.Points.Add(point); 
} 

: 여기

바보 해결 방법입니다 : Timer을 추가하고 해당 Tick이 투명하게 제 2의 Point을 제거하면 첫 번째 Point이 0에서 1로 점프하는 것을 볼 수 있습니다. 따라서 이상한 점을 볼 수 있습니다.

+0

크레이지 스태프 맨 ...이 작품은 ... 1,1 점에 숨겨진 점을 넣었습니다. – Dreamer78692

0

Ah ha ....

이것은 버그가 아닙니다. 이것은 차트의 SERIESCHARTTYPE.POINT에 대한 올바른 동작입니다.

차트의 목적은 X, Y 점 집합이 아닌 [왼쪽에서 오른쪽으로] 값의 [b] 시리즈 [/ b]를 표시하는 것입니다.

시리즈 값 1은 4 시리즈 값 2는 1입니다. 시리즈 값 3은 6 입니다.

그래서 차트에있는 버그는 아니지만 차트 유형이 무엇을 위해 설계되고 사용되는지 이해하고 있습니다.

여기서 배열의 각 요소가 점의 y 값만 사용하는 방법을 볼 수 있습니다.

Not broke

는 당신이 몇 가지 포인트를 그래프로 원하는 수 있을까? 아마도 차트그래프을 혼동하고 있습니까? 포인트를 그래프로 표시하려고하면 다음과 같이 도움이 될 수 있습니다. https://www.daniweb.com/software-development/csharp/code/217204/function-plotting-in-c

+0

나는 이해할 수 없다. 이 질문을 정말로 읽었습니까? 이것을 시도하십시오 :'S1.ChartType = SeriesChartType.FastLine; S1.Points.AddXY (1, 0); S1.Points.AddXY (1, 5); 그리고 시도해보십시오 :'S1.ChartType = SeriesChartType.FastLine; S1.Points.AddXY (0, 0); S1.Points.AddXY (0, 5);'이제 설명하십시오! – TaW

관련 문제