2017-08-28 15 views
2

私はLiveChartで簡単なLineSeriesを描画しようとしています。デフォルトではコンピュータ/配列インデックスは0で始まり、人間(プログラマでない)は1でカウントを開始するので、値のインデックスを1(つまりindex + 1)から始めるのが好きですが、これを行う方法を理解できませんでした。LiveChartで開始インデックスをカスタマイズする

私はTypes and Configurations上LiveChartのドキュメントを読んで、そしてのSeriesCollectionへのインデックス+ 1のマッパーを取得しようとしましたが、私は、無効な引数エラーを取得:から変換することはできません「LiveCharts.Configurations.CartesianMapper」「LiveCharts.Definitionsに。 Series.ISeriesView」

var mapper1 = new CartesianMapper<double>() 
     .X((value, index) => index + 1) 
     .Y((value, index) => value); 

sc = new SeriesCollection 
{ 
    new LineSeries 
    { 
     Values = new ChartValues<double>() {1,2,3,4,1,2,3,4,1,2}, 
    }, 
    mapper1 
}; 

enter image description here

+2

ドキュメンテーションは特定の問題ではあまり役に立ちませんが、私はLiveChartを多用していますので、いくつかの提案をすることができます。あなたのコードではなく、マッパーを設定するために 'sc = new SeriesCollection(mapper1){...}'を試してください。 –

+1

@ KeyurPATEL、イエスキリストそれは働く。マッパに渡してコンストラクタに過負荷をかけて試してもらうように指示すれば、私はそのドキュメントを見落とすかもしれません。あなたの回答を回答として選択できるように、回答してください。 – KMC

+0

Mapperを設定するために使用できる 'Configuration'という名前の' SeriesCollection'のプロパティもあります。これはいつでも設定でき、マッパーが使用されます。 –

答えて

3

私はそれがに埋め込ま見つけたが、私は(私は彼らの文書からそれを持っていないので、LiveChartsで自分自身をいじくり回すしなければならなかったという理由だけで、これを答えることができますあなたは1シリーズのために特別にマッパーを設定したい場合は、次のように、あなたはdelcarationに追加することができ)

var mapper1 = new CartesianMapper<double>() 
     .X((value, index) => index + 1) 
     .Y((value, index) => value); 

sc = new SeriesCollection(mapper1) 
{ 
    new LineSeries 
    { 
     Values = new ChartValues<double>() {1,2,3,4,1,2,3,4,1,2}, 
    } 
}; 

また、特定のデータ型のグローバルマッパーを設定する方法があります、例えばあなたがMeasureModelを使用している場合:

var mapper = Mappers.Xy<MeasureModel>() 
      .X(model => model.DateTime.Ticks) //use DateTime.Ticks as X 
      .Y(model => model.Value);   //use the value property as Y 

//lets save the mapper globally. 
Charting.For<MeasureModel>(mapper); 

例はhereからのものであること。

関連する問題