2013-12-17 35 views
0

我在圖表中爲每一行獲取x軸的新值。我只需要圖表行或更好的x-axit上的第一個(或最後一個)值,它只顯示1-12個月。如何在WPF圖表控件上只獲取一個x軸值

LineSeries lineSeries = new LineSeries(); 
    lineSeries.DataPointStyle = dataPointStyle; 
    lineSeries.DependentValuePath = "Indextal"; 
    lineSeries.IndependentValuePath = "Dato"; 

    lineSeries.IndependentAxis = new DateTimeAxis 
    { 
    Orientation = AxisOrientation.X, 
    Location = AxisLocation.Bottom, 
    IntervalType = DateTimeIntervalType.Months 
    }; 
    //((DateTimeAxis)lineSeries.IndependentAxis).Visibility = Visibility.Hidden; 

    lineSeries.ItemsSource = IndsætGrafData(år); 
    chart_LineSeries.Series.Add(lineSeries); 

該圖片顯示了我得到的結果。我只需要每個月的一個日期。 There are to many dates

回答

0

這是因爲您創建了2次DateTimeAxis。移動此軸的建設,這樣的構造,使得它僅創建一次:

private DateTimeAxis _xAxis; 

public MainWindow() 
{ 
    InitializeComponent(); 

    this._xAxis = new DateTimeAxis 
    { 
     Orientation = AxisOrientation.X, 
     Location = AxisLocation.Bottom, 
     IntervalType = DateTimeIntervalType.Months 
    }; 

    chart_LineSeries.Axes.Add(this._xAxis); 

    // ... 
} 

然後改變你設置軸代碼:

lineSeries.IndependentAxis = this._xAxis; 
+0

我明白你想要什麼,但是當我嘗試它會變得更糟。看到我的回覆。 – MHP

0

Vorrtex,當我想你的答案,我得到這個結果: enter image description here

這裏有一些更多的代碼,也許它可以幫助嗎?

private DateTimeAxis _xAxis; 

public MainWindow() 
{ 
InitializeComponent(); 

this._xAxis = new DateTimeAxis 
{ 
    Orientation = AxisOrientation.X, 
    Location = AxisLocation.Bottom, 
    IntervalType = DateTimeIntervalType.Months 
}; 

chart_LineSeries.Axes.Add(this._xAxis); 
} 


void GrafListe() 
{ 
    label_Info.Content = ""; 
    chart_LineSeries.Series.Clear(); 
    aktiekursListe = controller_Aktiekurs_Database.HentAltFraAktiekursTabellen(idVirksomhedensStamdata); 

    if (aktiekursListe.Count() > 0) 
    { 
    datoListe = controller_Dato.HentAlleDatoer(); 
    chart_LineSeries.Visibility = Visibility.Visible; 

    var myYear = 
     from a in aktiekursListe 
     join d in datoListe on a.IdDato equals d.Id 
     orderby d.DagTid descending 
     select new { d.DagTid.Year }; 

    int[] antalÅr = new int[myYear.Distinct().Count()]; 
    int antal = 0; 
    foreach (var item in myYear.Distinct()) 
    { 
     antalÅr[antal] = item.Year; 
     antal++; 
    } 

    for (int i = 0; i < antalÅr.Count(); i++) 
    { 
     GrafData(antalÅr[i]); 
    } 
    } 
    else 
    label_Info.Content = "xx"; 
} 




void GrafData(int år) 
{ 
    Style dataPointStyle; 
    dataPointStyle = GetNewDataPointStyle(år); 

    LineSeries lineSeries = new LineSeries(); 
    lineSeries.DataPointStyle = dataPointStyle; 
    lineSeries.Title = år.ToString(); 
    lineSeries.DependentValuePath = "Indextal"; 
    lineSeries.IndependentValuePath = "Dato"; 
    lineSeries.ItemsSource = IndsætGrafData(år); 
    chart_LineSeries.Series.Add(lineSeries); 
} 
+0

您在我的答案的最後一段中告訴過您,您沒有將「lineSeries.IndependentAxis = this._xAxis;」行添加到您的「GraphData」方法中。此外,綠色圖表是在紅色圖表之前,因爲它們有不同的年份,而2011年是在2012年之前,這是正確的。如果您只需要12個月,則可以使用CategoryAxis。 – vorrtex

相關問題