2014-10-20 2 views
0

일부 데이터를 플롯하기 위해 범위 막대 ms 차트를 사용하고 있습니다. Y 축은 시간 (총 24 시간)을 나타냅니다. 차트가 데이터를 올바르게 플롯하고 있지만 y 축이 0 시간에서 시작하지 않습니다.

enter image description hereMS 차트 Y 축 0 시간부터 쳐다 보지 않는다 [RangeBar]

코드

var IETable = (dt as System.ComponentModel.IListSource).GetList(); 
chChart.DataBindCrossTable(IETable, "Number", "", "Start,Finish", ""); 

        foreach (Series sr in chChart.Series) 
        { 

         sr.ChartType = SeriesChartType.RangeBar; 
         sr.YValueType = ChartValueType.Time; 

        } 


        chChart.ChartAreas[0].AxisY.LabelStyle.Format = "h : tt"; 
        chChart.ChartAreas[0].AxisY.Interval = 2; 
        chChart.ChartAreas[0].AxisY.IntervalType = DateTimeIntervalType.Hours; 
        chChart.ChartAreas[0].AxisY.IntervalOffset = 0; 
        chChart.ChartAreas[0].AxisY.IsMarksNextToAxis = true; 
        chChart.ChartAreas[0].AxisY.IsStartedFromZero = true; 


는 또한 AxisY.Minimum = 0 AxisY.Maximum = 1을 시도했다. Y 축이 0부터 시작하지만 플로팅은 표시되지 않습니다.

+0

여기서부터 무엇입니까? – Vajura

+0

@Vajura 오후 8시 (전날)부터 시작됩니다. 더 명확하게 스크린 샷을 추가했습니다. –

답변

1
DateTime minDate = new DateTime(0, 0, 0, 0, 0, 0); 
DateTime maxDate = minDate.AddHours(24); 
chChart.ChartAreas[0].AxisY.Minimum = minDate.ToOADate(); 
chChart.ChartAreas[0].AxisY.Maximum = maxDate.ToOADate(); 

시도해보십시오. 새 DateTime (0, 0, 0, 0, 0, 0)을 변경해야 할 수도 있습니다.은 물건을 추가 할 때 년 및 월 등에 맞춰야합니다. 가능한 해결 방법은 DateTime.Now와 minDate을 얻고 날짜에 트릭을 텍스트 상자의 값을 않은 변환 시간, 분, 초

+0

"ArgumentOutOfRange"예외가 발생했습니다. "Year, Month and Day는 표현할 수없는 datetime을 설명합니다. 그러나 TextBox 값을 datetime으로 변환하는 것은 트릭을 만들었습니다. –

+0

그래, 미안하지만 테스트 해봐야 이걸로 알았어. – Vajura

0

을 빼기하는 것입니다.

DateTime minDate =Convert.ToDateTime(tbDate.Text); 
DateTime maxDate = minDate.AddDays(1); 
chChart.ChartAreas[0].AxisY.Minimum = minDate.ToOADate(); 
chChart.ChartAreas[0].AxisY.Maximum = maxDate.ToOADate();