0

バブル シリーズを含む TeeChart をデータソースにバインドしています。データソースには非常に大きな値のデータがあります。これは、チャートをバインドしているデータセットです。

画像 1 - データセット画像

これらの値でチャートをバインドすると、チャートにバブルがプロットされません。注目すべき興味深い点は、これらすべての値を 100000 で割り、グラフをプロットすると、バブルがプロットされることです。XValues と YValues を交換すると、元のデータでもグラフがプロットされることに注意してください。データの元の値をプロットし、半径の値とツールチップの「Product_Desc」列を取得したいと考えています。

画像 2 - チャート画像

また、2行にスクロールしないように凡例の位置を設定するにはどうすればよいですか。

よろしく

ヌプール・モディ

4

2 に答える 2

1

問題はスケールにあるようです。バブルシリーズは、軸スケールを考慮して半径を描くと考えられていることに注意してください。

XValues は 239.560,5 から 5.776.576,87 になります。これは 5.537.016,37 の範囲です。X 軸の長さは 473 ピクセルです。これは、各 2 X ピクセル間に 11.706,166 の増分があることを意味します。

YValues は 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 軸の範囲に対して半径が小さすぎます。


2 つの選択肢があります。

  1. Radius 値に 100 以上を掛けることができます。これにより、軸のスケールを見ると、バブルのサイズが正しくなくなります。しかし、おそらく重要なことは、半径を通る軸の値を示すのではなく、バブル間の比率を維持することです。

  2. 3D タイプのシリーズ タイプを変更します。表現する 3 つの値があり、それぞれがまったく異なるスケールに従っているため、Points3D などの 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シリーズ

于 2013-02-06T09:42:35.607 に答える
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と見なされ、値の範囲外の軸スケールを設定しています。

于 2013-02-05T10:54:53.837 に答える