簡體   English   中英

Zedgraph - 如何自定義基於日期的X-Axis抽搐

[英]Zedgraph - how to customize date based X-Axis tics

情況 在此輸入圖像描述

我正在使用價格(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月份的標簽

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

如我的屏幕轉儲中所示,我可以選擇標簽/ tic出現在哪個月份。 因此,對於該數據集,我想在以下標簽處添加標簽:

  • 2010年3月(出現在Mar10)
  • 2011年3月(出現在3月11日)
  • 2012年3月(出現在Mar12)
  • 2013年3月(出現在3月13日)

我希望更清楚。

您需要將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循環中這樣做,我只是把它放在一個,因為這是我從其他帖子復制代碼的方式。 我希望它有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM