繁体   English   中英

Zedgraph:带日期轴的水平条形堆栈

[英]Zedgraph : horizontal bar stack with date axis

我尝试在C#中使用ZedGraph创建一个水平条形堆栈。 我已经实现了这个 该图像应该是一种日历,一个小节为30分钟,红色的条表示忙碌,绿色的条表示空闲时间。

但是,正如您所看到的,X值(时间)根本不好。 该图像仅表示一天(我的XDate()数据从2011年12月20日0h0m0s到2011年12月21日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();

添加栏时,您是否尝试控制XDate obj? 尝试使用xDate.AddDays(1)控制您的xAxis值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM