2012-05-21 5 views
0

차트의 음수 값을 양수 값과 다른 색으로 채울 수 있는지 물어보고 싶습니다. 또한 어떻게 태그 값을 1,2,3 .. 10 등의 값을 표시 할 수 있습니다! 값은 -300000에서 최대 700,000내 프로그램에서 그래프 채색 및 값 추가

차트는 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). 예를 들어 루프 대신 배열을 생성하고 소수에있는 DataGridView에서 값을 변환의이 같은 직선을 그릴 수 있습니다 :

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

chart1.ChartAreas[0].AxisY.Interval = 50000; 이상하게 동작, 시간의 대부분 그렇지 않습니다 전혀 작동하지 않습니다.

색칠 문제는 내가 진정으로 고맙게 생각하는 것을 도와 줄 수 있다면 훨씬 더 중요합니다.

당신은 포인트를 작성하지 않고 직접 AddXY를 사용 안부 조지 조지 우

+2

사용하는 차트 무엇 도서관은? – npinti

+0

MSCharts입니까? –

+0

도구 상자의 차트. System.Windows.Forms.DataVisualization.Charting을 사용하여 추가해야했습니다. –

답변

1

사전에해야 하라구요. 이렇게하면 색상을 포함한 포인트를 완벽하게 제어 할 수 있습니다. 그래서보다는 :

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

+0

Thx 대단히 도움이되었지만, 데이터 포인트의 값을 가지고 있기 때문에, 내 라인이 x 축을 가로 지르는 곳에 1 개의 추가 데이터 포인트를 추가 할 수 있는지 궁금합니다. Y 값은 확실히 0이지만 X 값은 알 수 없습니다. 선이 축과 교차하는 지점을 제공하는 함수가 있습니까? 대단히 감사합니다. –