2016-08-11 121 views
1

私はこれは私のグラフは現在、現在OxyPlot:軸ラベルフォーマッタの使用方法とYラベルの表示方法

enter image description here

ここでは代わりにx軸の値のどれだ同類を見えるもの..です棒グラフをプロットするための私のXamarin.iOSプロジェクトのOxyplotする

を使用しています.....私は太陽、月、真実、結婚式を見せたい.....

私はCategoryAxisがFunc<double, string>を返すLabelFormatterというメソッドを持っているのを見ることができますが、どうすれば使用できますか?

また、なぜY軸ラベルが表示されないのですか?

public class MyClass 
    { 
     /// <summary> 
     /// Gets or sets the plot model that is shown in the demo apps. 
     /// </summary> 
     /// <value>My model.</value> 
     public PlotModel MyModel { get; set; } 

     /// <summary> 
     /// Initializes a new instance of the <see cref="OxyPlotSample.MyClass"/> class. 
     /// </summary> 
     public MyClass() 
     { 

      var model = new PlotModel { Title = "ColumnSeries" }; 
      model.PlotAreaBorderColor = OxyColors.Transparent; 
      // A ColumnSeries requires a CategoryAxis on the x-axis. 

      model.Axes.Add(new CategoryAxis() 
      { 
       Position = AxisPosition.Bottom, 
       MinorTickSize = 0, 
       MajorTickSize = 0, 
       //MajorGridlineStyle = LineStyle.Solid, 
       //MinorGridlineStyle = LineStyle.Solid, 
      }); 

      model.Axes.Add(new LinearAxis() 
      { 
       AxislineStyle = LineStyle.None, 
       Position = AxisPosition.Left, 
       MinorTickSize = 0, 
       MajorTickSize = 0, 
       MajorGridlineStyle = LineStyle.Solid, 
       MinorGridlineStyle = LineStyle.Solid, 
       Minimum = 0, 
       Maximum = 400, 
      }); 

      var series = new ColumnSeries(); 
      series.Items.Add(new ColumnItem() { Value = 200, Color = OxyColors.Orange}); 
      series.Items.Add(new ColumnItem(200)); 
      series.Items.Add(new ColumnItem(300)); 
      series.Items.Add(new ColumnItem(100)); 
      series.Items.Add(new ColumnItem(200)); 
      series.Items.Add(new ColumnItem(100)); 
      series.Items.Add(new ColumnItem(130)); 

      model.Series.Add(series); 

      this.MyModel = model; 
     } 
    } 

答えて

3

、プロパティMajorStepを指定する必要が軸のラベルを表示するには、Oxyplotは大きな一歩を合わせるだけで、ラベルをペイントします。

model.Axes.Add(new LinearAxis() 
{ 
    MajorStep = 10, 
    Position = AxisPosition.Left, 
    ... 
}); 

日名とラベルを変更するには、あなたの代わりにLinearAxisDateTimeAxisを使用することができます。

model.Axes.Add(new DateTimeAxis() 
{ 
    StringFormat = "ddd", 
    Position = AxisPosition.Bottom, 
    ... 
}); 

あなたはより多くのカスタマイズされた何かをしたい場合は、LabelFormatter属性を使用する必要があります。

EDIT:れるCategoryAxisで

ラベル:

var categoryAxis = new CategoryAxis() 
{ 
    Position = AxisPosition.Bottom, 
    ... 
}; 

categoryAxis.ActualLabels.Add("Mon"); 
categoryAxis.ActualLabels.Add("Tue"); 
categoryAxis.ActualLabels.Add("Wed"); 
categoryAxis.ActualLabels.Add("Thu"); 
categoryAxis.ActualLabels.Add("Fri"); 
categoryAxis.ActualLabels.Add("Sat"); 
categoryAxis.ActualLabels.Add("Sun"); 

Model.Axes.Add(categoryAxis); 

CategoryAxis.ActualLabels読み取り専用であるので、あなたは項目を一つずつ追加する必要があります。

+0

しかし、列シリーズをプロットするには、X軸としてCategoryAxis()を追加する必要はありませんか? – HeisenBerg

+0

私は答えを編集しました。これはあなたが達成したいと思うものだと思います。 – Jose

+0

ありがとうございます。それは動作します。そして私は私のquesitonの第二の部分についてあなたを考える。yレベルを示す。 -_- – HeisenBerg

関連する問題