gla*_*con 7 c# charts zedgraph
情况

我正在使用价格(Y轴)的ZedGraph与时间(X轴)构建图表.持续时间为三年.
目前我正在获得X轴标签:1月11日; 1月12日; 1月13日,一系列数据从2010年3月3日至2013年3月2日.
据我所知,如果轴的类型为DateTime,则这是默认行为.
题
如何更改X轴标签,以便我得到:3月11日; 3月12日; 3月13日?更常见的是,我可以更改用于与数据的开始/结束月份重合的标签.
编辑:
我对这个问题的初步尝试有点模棱两可,所以我只是想澄清一下.
这并不是说我希望标签是dd-MMM-yy - 我想要的是能够控制X轴上标签/抽搐出现的位置.
因此,对于跨越2010年3月3日至2013年3月2日的X轴,而不是始终出现在1月份的标签
如我的屏幕转储中所示,我可以选择标签/ tic出现在哪个月份.因此,对于该数据集,我想在以下标签处添加标签:
我希望更清楚.
您需要将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));
Run Code Online (Sandbox Code Playgroud)
那会给你你要求的日期; 我知道你可以在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);
}
Run Code Online (Sandbox Code Playgroud)
我从这个线程修改了这个,我觉得和你的类似,除了它是为了Y-axis.这有点像黑客,你必须手动添加每一个.你不需要在foreach循环中完成它,我只是把它放在一个,因为这是我从其他帖子复制代码的方式.我希望它有效!