Zedgraph - 如何自定义日期基于X轴抽动(Zedgraph - how to custom

2019-08-17 07:07发布

情况

我建立使用代价的ZedGraph(Y轴)对时间(X轴)的图表。 时间期限为三年。

目前我得到的X轴标签:1月11日; 1月12日; 年01月13为一组数据的运行从3-MAR-2010 2-MAR-2013。

至于我可以看到这是如果轴是DateTime类型的默认行为。

如何更改X轴的标签,这样我得到:03月11日; 3月12日; 年03月13? 更一般地,这样我可以改变用来与数据的开始/结束月份一致的标签。


编辑:

我在这个问题最初尝试却有点含糊,所以我只是要试图澄清。

这不是我想要的标签被DD-MMM-YY - 我想要的是能够控制在何处标签/抽动出现在X轴的位置。

所以,对于X轴,横跨3月 - 2010年3月2日2013年,而不是标签总是出现在一月

  • 1月11日[即2011年1月]。
  • 1月12日[即2012年1月]。
  • 1月13日[即2013年1月)

如在我的屏幕转储我可以选择每月标签/抽动出现英寸 因此,对于该数据集,我想在有标签:

  • 2010年3月(表现为Mar10)
  • 2011年3月(表现为Mar11)
  • 2012年3月(表现为Mar12)
  • 2013年3月(表现为Mar13)

我希望这是更清晰。

Answer 1:

您需要设置x轴属性

myPane.XAxis.Title.Text = "Date";
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Format = "dd-MMM-yy";
myPane.XAxis.Scale.MajorUnit = DateUnit.Day;
myPane.XAxis.Scale.MajorStep = 1;
myPane.XAxis.Scale.Min = new XDate(DateTime.Now.AddDays(8));
myPane.XAxis.Scale.Max = new XDate(DateTime.Now.AddDays(11));

这会给你你所要求的日期; 我知道你可以把一个减号在AddDays方法,如果你想从今天开始倒计时,而不是,您可以设置日期专门太(只是看看自动完成,当你开始输入它)。

希望这可以帮助! 祝好运!

编辑

所以这是我能想出让这些自定义蜱:你必须使用TextObj标签。 您还可以摆脱原来的刻度:

pane1.MasterPane[0].XAxis.Scale.IsVisible = false;
pane1.MasterPane[0].XAxis.MajorTic.IsAllTics = false;

foreach (double val in x_values)
{
    TextObj text = new TextObj(val.ToString(), pane1.MasterPane[0].YAxis.Scale.Min, val);
    text.Location.AlignH = AlignH.Right;
    text.FontSpec.Border.IsVisible = false;
    text.FontSpec.Fill.IsVisible = false;
    pane1.MasterPane[0].GraphObjList.Add("Mar10"); 

    LineObj line = new LineObj(pane1.MasterPane[0].YAxis.Scale.Min, val, pane1.MasterPane[0].YAxis.Scale.Max, val);
    line.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
    line.Line.Width = 1f;
    pane1.MasterPane[0].GraphObjList.Add(line);
}

我修改这个从这个线程我认为这是与你相似,但它是为Y-axis 。 这是一个黑客位的,你必须手动添加每一个。 你真的没有做在foreach循环,我只是把它放在一个,因为这是我从其他后复制的代码。 我希望它的作品!



文章来源: Zedgraph - how to customize date based X-Axis tics