Zedgraph: стек горизонтальных полос с осью даты

Я пытаюсь создать горизонтальный стек с помощью ZedGraph в С#. Я уже добился этого. Это изображение должно быть своего рода календарем, одна полоса размером 30 минут, красные полосы означают занятость, зеленые - свободное время.

Но, как видите, значения X (время) совсем не годятся. Изображение представляет только один день (мои данные XDate() идут с 12.02.2011 0h0m0s до 12.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();

person Adrast    schedule 22.10.2012    source источник


Ответы (1)


Вы пытались управлять своим объектом XDate при добавлении панели? попробуйте xDate.AddDays(1), чтобы контролировать значение xAxis.

person Rex Lin    schedule 28.03.2013