2017-09-25 2 views
1

winforms C#アプリケーションで既存のグラフが見つかるかどうか調べようとしています。スケーリングされていないy値のグラフ

は、私はいくつかの整数で、B、Cを入力持っている...と、処理の最後に、私は12のような広い範囲の値、342、445879などのチャート上

私だけを見たいとの結果を得ましたより高いライン・エンドと低いライン・エンドとの間の等価スケール距離なしに、より高いサイズからより低いレベルへの階層化。各入力の下向きのカーブで階段だけ。

このようなグラフツールが既に存在する場合は、2つのものが必要です。行に名前が付けられ、高さの低いものから順に並べ替えられて、比率が異なるものが表示されます。

int a = 12989; 
int b = 324; 
int c = 23; 
int d = 12; 
int e = 3; 

第2の処理結果:

は、例えば私が入力持っている私はVSのリストに異なるグラフを使用することを試みた

int a = 4; 
int b = 25; 
int c = 1; 
int d = 4; 
int e = 14; 

private void Size(int a, int b) 
    { 
     this.chart1.Series["Series1"].Points.AddXY("a1", a); 
     this.chart1.Series["Series1"].Points.AddXY("a2", b); 
    } 

がなく思わ私は別のものが必要です。

ここで望まれる結果:

unscaled columns

+0

なぜ私の明確な説明書を借換えましたか?正しい画像はほとんど望みの結果ではありませんか?!?! – TaW

答えて

2

はい、これが可能です。

x値の場合、スケーリングされていない表示を強制するために実際にはSeriesプロパティIsXValueIndexedがあります。しかし、y値にはこのようなことはありません。

は(理由は、おそらく データに関するユーザに誤解を与えるであろうように、そのスケーリングされていないy値は、またはx値の真であってもなくてもよい..(..、 本当に有用ではないあるおそらく。あなたを回避するには、たとえば、郵便番号や他のID を含むx値スケーリングされていない表示されるはずです!))

は、カウント値と明示的に各DataPointsetLabelsにxとyの値を設定する必要がありますを実際の値に置き換えてください。

例:AY meanigful値を表示することはできません

enter image description here

// create an odered list of data: 
List<double> data = new List<double>(); 
for (int i = 0; i < 12; i++) data.Add(rnd.Next(100) * rnd.Next(i * 5)); 
data = data.OrderByDescending(x => x).ToList(); 

// now add with dummy x and y-values: 
Series s = chart1.Series[0]; 
for (int i = 0; i < data.Count; i++) 
{ 
    int p = s.Points.AddXY(i, data.Count - i); // dummy values 
    DataPoint dp = s.Points[p]; 
    dp.Label = data[i] +"";  // real value, formatted 
    dp.Tag= data[i];    // real value 

} 

軸を取り除くために、それらを無効にします。

chart1.ChartAreas[0].AxisX.Enabled = AxisEnabled.False; 
chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.False; 

もっとスタイリング:

s.SetCustomProperty("PixelPointWidth","15"); 
s.Color = Color.DarkSlateGray; 

y値は実際にはダミーなので、アクセスする必要がある場合はLabelsを使用し、文字列型から数値型に変換する必要があります。また、doubleまたはfloatsの場合、これらの文字列はひどく長いか短い文字列にフォーマットされます。実際の値を保持するには、それぞれDataPointTagフィールドにこれらを追加して保存することができます。

関連する問題