2012-10-22 7 views
1

C#에서 ZedGraph를 사용하여 가로 막대 스택을 만들려고합니다. 이미 this에 도달했습니다. 이 이미지는 일종의 달력, 막대 크기 30 분, 빨간색 막대는 통화 중, 녹색은 자유 시간을 의미합니다.Zedgraph : 날짜 축이있는 가로 막대 스택

그러나 알다시피 X 값 (시간)은 전혀 좋지 않습니다. 이미지는 단지 하루를 나타냅니다 (내 XDate() 데이터는 20/12/2011 0h0m0s에서 21/12/2011 0h0m0s로 바뀜). 그러나 나는 9999 년을 확대합니다.

여기 내 코드입니다. 내 오류를 찾을 수 없습니다.

도움 주셔서 감사합니다.

gPane.BarSettings.Type = BarType.Stack; 
gPane.BarSettings.Base = BarBase.Y; 
gPane.BarSettings.ClusterScaleWidth = 1; // Widen bars 

gPane.XAxis.Title.Text = "Time (sec)"; 
gPane.XAxis.Scale.FontSpec.Angle = 65f; 
gPane.XAxis.Type = AxisType.Date; 
gPane.XAxis.Scale.Format = "dd-MMM-yy hh:mm"; 
gPane.XAxis.Scale.BaseTic = dataBar[0].X; 
gPane.XAxis.Scale.Min = dataBar[0].X; 
gPane.XAxis.Scale.Max = dataBar[dataBar.Count - 1].X; 
gPane.XAxis.Scale.MajorUnit = DateUnit.Day; 
gPane.XAxis.Scale.MinorUnit = DateUnit.Day; 
gPane.XAxis.Scale.MinorStep = 1; 
gPane.XAxis.Scale.MajorStep = 2; 

foreach (PointPair pp in dataBar) 
{ 
    //pp.X = XDate date (double) 
    //pp.Y = 0 (free) ou 1 (busy) 

    Color col = Color.Green; 
    if (pp.Y == 1) 
     col = Color.Red; 

    gPane.AddBar("", /* I don't need it */ 
       new double[] { pp.X }, /* the current XDate date*/ 
       new double[] { 30 /* width of bar */ }, 
       col); 
} 

gPane.AxisChange(); 

답변

0

바를 추가하는 동안 XDate obj를 제어하려고 했습니까? xDate.AddDays (1)를 시도하여 xAxis 값을 제어하십시오.