在我的程序中为图形着色并添加值

本文关键字:添加 图形 我的 程序 | 更新日期: 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