0

チャートの負の値を正の値とは異なる色に着色することが可能かどうかを尋ねたいと思います。また、1、2、3..10などの値にタグを付けるなどの値にマークを入力するにはどうすればよいですか?値の範囲は-300000から700000までです

チャートはC#であり、次を実行するボタンがあります。

decimal[] numbers = new decimal[20];

for (int i = 0; i < 20; i++) 
{  
    numbers[i] = Convert.ToDecimal(dataGridView1[7, i].Value);  
    chart1.Series["Loan_Balance"].Points.AddXY(i+1, numbers[i]); } 
    chart1.Series["Loan_Balance"].Color = Color.Blue; 
    chart1.ChartAreas[0].AxisX.Interval = 1;
    chart1.ChartAreas[0].AxisY.Interval = 50000;
    chart1.Series["Loan_Balance"].ChartType = SeriesChartType.Range;
}

また、データベース(datagridview)から直接値を入力するのはなぜですか。たとえば、forループでは、配列を作成して値をdatagridviewから10進数に変換する代わりに、次のようにまっすぐにプロットします。

chart1.Series["Loan_Balance"].Points.AddXY(i, dataGridView2[i, 0].Value);

奇妙なchart1.ChartAreas[0].AxisY.Interval = 50000; 動作をしますが、ほとんどの場合、まったく機能しません

あなたが私を助けることができれば、着色の問題ははるかに重要です私はそれを本当に感謝します。

よろしくお願いしますGeorgeGeorgiou

4

1 に答える 1

1

を使用するのではなく、ポイントを直接作成する必要がありますAddXY。これにより、色を含むポイントを完全に制御できます。したがって、ではなく:

chart1.Series["Loan_Balance"].Points.AddXY(i+1, numbers[i]);

使用する:

var point = new DataPoint(i+1, numbers[i]);
point.Color = numbers[i] < 0 ? Color.Red : Color.Black; // or whatever logic
point.Label = numbers[i].ToString();                    // and so on
chart1.Series["Loan_Balance"].Points.Add(point);

DataPointここで利用可能な他のプロパティを確認できます:http: //msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.datapoint.aspx

于 2012-05-21T06:04:25.937 に答える