我想问一下,是否可以将图表的负值与正面的颜色区分开来。另外我如何在值上输入标记,例如标记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中的值转换为decimal,而是直接绘制它们:
chart1.Series["Loan_Balance"].Points.AddXY(i, dataGridView2[i, 0].Value);
chart1.ChartAreas[0].AxisY.Interval = 50000;
表现得很奇怪,大部分时间都不起作用
如果你可以帮助我,那么着色问题会更加重要,我会非常感激。
提前感谢你 最好的祝福 George Georgiou
答案 0 :(得分: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