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

C# 在我的程序中为图形着色并添加值,c#,charts,C#,Charts,我想问一下,是否有可能将图表的负值涂成与正值不同的颜色。另外,我如何在值上输入标记,如标记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); char

我想问一下,是否有可能将图表的负值涂成与正值不同的颜色。另外,我如何在值上输入标记,如标记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;
}
chart1.ChartAreas[0].AxisY.Interval=50000
行为怪异,大多数时候根本不起作用

如果你能帮我的话,我会非常感激你的

先谢谢你 顺致敬意,
George Georgio

您应该直接创建点,而不是使用
AddXY
。这使您可以完全控制该点,包括其颜色。因此,不是:

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

var point=新数据点(i+1,数字[i]);
点颜色=数字[i]<0?颜色。红色:颜色。黑色;//或者随便什么逻辑
point.Label=number[i].ToString();//等等
图表1.系列[“贷款余额”]。点数。添加(点数);

您可以在
DataPoint
此处查看哪些其他属性可用:

您使用的是什么图表库?工具箱中的图表。我还必须使用System.Windows.Forms.DataVisualization.Charting添加;Thx非常感谢您的帮助,但是因为我有数据点的值,我想知道我是否可以在我的线穿过x轴的地方添加一个额外的数据点。Y的值肯定是0,但X的值未知。是否有一个函数给出一条直线与一条轴相交的点?非常感谢你
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);