在我的程序中为图形着色并添加值
本文关键字:添加 图形 我的 程序 | 更新日期: 2023-09-27 18:34:41
我想问一下是否可以将图表的负值着色为与正值不同的颜色。另外,我如何在值上输入标记,例如将值标记为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;
}
我还想问,为什么当我直接从数据库(数据网格视图(输入值时。例如,在 for 循环中,不是创建一个数组并将值从 datagridview 转换为十进制,而是直接绘制它们,如下所示:
chart1.Series["Loan_Balance"].Points.AddXY(i, dataGridView2[i, 0].Value);
chart1.ChartAreas[0].AxisY.Interval = 50000;
行为奇怪,大多数时候它根本不起作用
着色问题更为重要,如果您能帮助我,我将不胜感激。
提前感谢你此致敬意乔治·乔治
您应该直接创建点,而不是使用 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