2013-02-05 24 views
0

我將具有氣泡系列的TeeChart綁定到數據源。數據源具有非常大的數據值。這是我綁定我的圖表的數據集。Teechart .Net - 氣泡問題不會在圖表上繪製某些值

Image 1 - Dataset Image

當我與這些值的圖表結合,無氣泡被繪製在圖表上。一個有趣的事情是,當我用100000分開所有這些值,然後繪製圖表時,氣泡確實會被繪製出來。 還有一點值得觀察的是,如果我交換XValues和YValues,那麼該圖表甚至會與原始數據一起繪製。我想繪製數據的原始值並獲取工具提示中的Radius值和「Product_Desc」列。

Image 2 - Chart Image

另外如何圖例位置被設置成使得它不滾動到2行。

問候

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系列被認爲繪製了關於軸線比例的半徑。

您的XValues從239.560,5變爲5.776.576,87。這是一個5.537.016,37範圍。你有一個473像素長度的X軸。所以這意味着在每2個X像素之間增加11.706,166。

您的YValues從67086938,62變爲63.500.3298,6。這是一個567.916.359,98範圍。你有一個228像素長度的Y軸。所以這意味着每2個Y像素之間的增量爲2.490.861,228。

您已經從39.728.41變爲952.021,78。

這些半徑比X像素增量大,所以它們都可以。 。

但這些半徑比Y象素增量較小,所以在幾句話,這些氣泡對Y軸的範圍,他們在表示過小的半徑


我看到了兩個選項:

  1. 您可以將Radius值乘以100或更多。如果您查看軸標度,這將導致錯誤的氣泡尺寸。但是對你來說,重要的是保持氣泡之間的比例,而不是通過半徑指示軸上的值。

  2. 更改3D類型的系列類型。由於您需要表示3個值,每個值都具有完全不同的比例尺,所以使用3D系列類型(如Points3D)可能更具邏輯性。即:

    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

@Yeray ...我明白你在說什麼..有沒有解決這個問題的方法? – user1627749

+0

我沒有看到與軸比例相比具有非常小的半徑應該如何繪製任何東西。我理解這是正確的結果。你會期望什麼,一個氣泡比它的半徑表示的值大嗎? – Yeray

+0

不,我不希望那樣,但不知何故,我需要將數據顯示給我的最終客戶端。你有沒有其他的解決方法,我可以在單個圖表中向用戶顯示所有這些數據?我的意思是可能是另一種類型的圖表或類似的東西。 – user1627749