情况
我建立使用代价的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)
我希望这是更清晰。
您需要设置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
循环,我只是把它放在一个,因为这是我从其他后复制的代码。 我希望它的作品!