2013-02-05 3 views
0

TeeChart를 버블 시리즈로 데이터 소스에 바인딩하고 있습니다. 데이터 소스에는 매우 큰 데이터 값이 있습니다. 다음은 차트를 바인딩하는 데이터 집합입니다. Teechart .Net - 일부 값에 대해 차트에 그림이 그려지지 않는 문제

Image 1 - Dataset Image

I 값이 차트 결합

는 기포 차트에 플롯되지 않는다. 흥미로운 점은이 모든 값을 100000으로 나누고 차트를 그릴 때 거품이 그려지는 것입니다. 관찰 할 가치가있는 또 하나의 포인트는 XValues와 YValues를 교환하면 원래의 데이터로도 차트가 그려지는 것입니다. 데이터의 원래 값을 플롯하고 툴팁에 반경 값과 "Product_Desc"열을 가져 오려고합니다. 이 2 개 라인 스크롤 않도록

Image 2 - Chart Image

방법도

범례 위치 설정 될 수있다.

감사

Nupur 모디

답변

0

확인 점을 확인합니다 "." 귀하의 DecimalSeparator :

System.Globalization.CultureInfo tmp_ci = (System.Globalization.CultureInfo)System.Globalization.CultureInfo.CurrentCulture.Clone(); 
    tmp_ci.NumberFormat.NumberDecimalSeparator = "."; 
    System.Threading.Thread.CurrentThread.CurrentCulture = tmp_ci; 

어쩌면 "." NumberGroupSeparator으로 취해지며 축 범위를 값 범위 밖으로 설정합니다.

+0

없음 @Yeray는, 즉, 문제가되지 않습니다. 내가 언급 한 코드를 추가하려고했지만 여전히 거품이 나타나지 않습니다. – user1627749

+0

문제가 무엇인지 알았습니다. 또 다른 답을 써 보겠습니다. – Yeray

1

문제는 비늘에있는 것 같습니다. Bubble 시리즈는 Axes 비늘을 존중하는 Radius를 그리는 것으로 생각됩니다.

X 값은 239.560,5에서 5.776.576,87까지입니다. 이것은 5.537.016,37 범위입니다. 그리고 X 축 길이는 473 픽셀입니다. 그래서 이것은 각 2 X 픽셀 사이에 11.706,166의 증가가 있음을 의미합니다.

귀하의 Y 값은 67086938,62에서 63.500.3298,6로 변경됩니다. 이것은 567.916.359,98 범위입니다. Y 축의 길이는 228 픽셀입니다. 따라서 이것은 2 Y 픽셀 사이에 2.490.861,228의 증가가 있음을 의미합니다.

반지름은 39.728.41에서 952.021,78까지입니다.

이 반경은 X 픽셀 증가분보다 커서 확인됩니다. .

그러나 몇 마디에이 거품들이 표현되는 범위 Y 축에 대한 너무 작은 반경을 가질 수 있도록이 반경의 Y 픽셀 증가보다 작은


나는 당신을위한 두 가지 옵션을 참조하십시오

  1. 반경 값을 100 이상으로 곱할 수 있습니다. 이것은 축 크기를 보면 버블 크기가 틀리게됩니다. 그러나 아마도 중요한 것은 반경을 통해 축의 값을 나타내는 것이 아니라 거품 사이의 비율을 유지하는 것입니다.

  2. 3D 유형의 시리즈 유형을 변경하십시오. 표현할 3 가지 값이 있으므로 각각 다른 스케일을 따르므로 Point3D와 같은 3D 계열 유형을 사용하는 것이 더 효율적일 수 있습니다.즉 :

    tChart1.Header.Visible = false; 
    
        tChart1.Aspect.Chart3DPercent = 50; 
        tChart1.Legend.Alignment = LegendAlignments.Top; 
        tChart1.Legend.TextStyle = LegendTextStyles.Plain; 
        tChart1.Axes.Depth.Visible = true; 
        tChart1.Axes.Bottom.Title.Text = "XValues"; 
        tChart1.Axes.Left.Title.Text = "YValues"; 
        tChart1.Axes.Depth.Title.Text = "ZValues"; 
    
        Points3D points3D1 = new Points3D(tChart1.Chart); 
        points3D1.ColorEach = true; 
        points3D1.LinePen.Visible = false; 
        points3D1.BaseLine.Visible = true;    
        points3D1.Add(544161.66, 114160840.39, 82491.58, "ComEd Commercial"); 
        points3D1.Add(239560.5, 67086938.62, 39728.41, "PECO Commercial"); 
        points3D1.Add(5776576.87, 635003298.6, 952021.78, "ComEd Residential"); 
        points3D1.Add(2657157.7, 552875694.07, 412903.38, "PECO Residential"); 
    

Points3D series

+0

@ 예고 ... 당신이 말하는 것을 이해합니다.이 문제에 대한 해결책이 있습니까? – user1627749

+0

나는 축척과 비교하여 아주 작은 반지름을 갖는 것이 무엇을 그려야하는지 알지 못합니다. 나는 이것이 올바른 결과라고 이해합니다. 버블이 반경 값보다 큰 값으로 그려지는 것이 무엇을 기대합니까? – Yeray

+0

아니요. 기대하지는 않지만 어쨌든 내 최종 클라이언트에 데이터를 표시해야합니다. 이 모든 데이터를 하나의 차트에 사용자에게 표시 할 수있는 다른 방법이 있습니까? 내 말은 다른 유형의 차트 일 수도 있습니다. – user1627749

관련 문제