2011-08-26 80 views
3

我有一個MSChart,看起來像下面。MSChart自定義xaxis標籤

http://11.a.hostable.me/images/june2007.JPG

我想要做的就是調整x軸標籤:

  • 我要標註每列,而不是每5
  • 我想指定每個標籤是什麼。

什麼我不明白的是,當我有它的「所有年份」視圖(如下圖所示),這個數字我指定爲使用

oDataPoint_PV.SetValueXY(年,視圖的x值)

使它成爲我指定顯示爲標籤的年份,但由於某些原因,在Months視圖中,它從1開始,而不是我設置的第一個值,在此示例中恰好爲13。

oDataPoint_PV.SetValueXY(天,查看)

在圖表2007年6月,它應該在13開始,到7月12日。

http://11.a.hostable.me/images/years.JPG

回答

17

要回答你的第一個問題:「我要標註每列,並不是每5」 您可以指定頻繁的標籤使用Interval屬性顯示。

chart1.ChartAreas[0].AxisX.Interval = [desired interval]; 

或設置只爲標籤使用間隔:

chart1.ChartAreas[0].AxisX.LabelStyle.Interval = [desired interval]; 

如果我按照正確的,你不希望你的圖表在零開始你的問題的最後,你可以使用一個標籤偏移。

chart1.ChartAreas[0].AxisX.LabelStyle.Offset = 1; 

這會跳過您提到的第一個標籤爲零。

第二個目標「我想指定了每個標籤」,可以以幾種方式解決

一種方法是顯示在(x或y)軸,(X或Y)值我相信是您正在使用基於信息你在你的問題提供了方法

另一種方式是手動設置軸標籤每個數據點

chart1.Series[0].Points[0].AxisLabel = "your label" 

您還可以添加標籤信息,當你加入數據點

chart1.Series[0].Points.Add(new DataPoint(4, 4) { AxisLabel = "your label" }); 

最後,您可以使用自定義標籤微操你的標籤,但可能更復雜,並根據您輸入的內容,你可能並不需要使用這些,所以我不會去到他們。

另外,你是否使用字符串或DateTime對象設置您的xvalue?
事情是這樣的:

Chart1.Series[0].XValueType = ChartValueType.DateTime; 
System.DateTime x = new System.DateTime(2008, 11, 21); 
Chart1.Series[0].Points.AddXY(x.ToOADate(), 34); 

如果是這樣,隨着時間日期標籤工作時,微軟圖表對象有可以設置來操作它是如何顯示的附加功能。以下是一些您可能會發現有用的附加信息。

http://msdn.microsoft.com/en-us/library/dd456614.aspx

然後,您可以利用屬性,如這些(我相信更多,但我不經常使用日期工作)

chart1.ChartAreas[0].AxisX.LabelStyle.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Days; 
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days; 

如果我沒有正確地回答你的問題,由於誤解,請讓我知道並修改您的問題,以指導我朝着正確的方向

(代碼示例中包含用於生成圖的實際數據,其中包含生成的圖像+您希望它執行的操作,而不是什麼顯示編輯在圖像是有幫助的 - 你有這一部分,但它是不完整的)

祝你好運!

0

我發現,如果你沒有將日期轉換爲String S爲標籤的間隔偏移量可能是一個問題:

String("MM-dd"),而不是DateTime

chart.ChartAreas[0].AxisX.Interval = 1;