2016-07-20 10 views
5

Daniel Gindi iOS-chartsを使って棒グラフを作成しました。これは、一定期間の履歴データを表します。私が抱えている問題は、データが左から右(新しいデータ→古いデータ)からプロットされていることです。私は右から左にプロットする必要があります(古いデータ→新しいデータ)。私はBarChartDataにデータを入力する順序を逆にすることができることを知っていますが、それでもチャートの問題はまだ整列しています。それは右揃えにする必要があります。私は議論here x軸の反転の問題について話し、どのように解決することができましたか(現時点ではフレームワークの機能ではありません)、実際に何が行われる必要があるのか​​分かりません。ここで私は必要なものの例を以下に示します。iOS-chartsはX軸の方向を逆転します

これは私のチャートは現在、次のようになります。

enter image description here

:これは私が見えるように、それを必要とするものである

enter image description here

私の質問

インバートする方法はありますかtはx軸ですか?

または

右のチャートを整列させる方法はありますか?ここで

は、私のコードの一部であるとの問題を解決しよう:

class ViewController: UIViewController { 

    @IBOutlet weak var barChartView: BarChartView! 

    //... 

    func plotChart() { 

     // Create history data 
     //... 

     barChartView.data = chartData // 'chartData' is the BarChartData() containing all of the history information 

     // No efect 
     barChartView.legend.direction = .RightToLeft 

     // Chart breaks 
     barChartView.leftAxis.axisMinValue = 30 
     barChartView.leftAxis.axisMaxValue = 0 

     // Breaks the ability to zoom 
     barChartView.setVisibleXRangeMinimum(CGFloat(40)) 
     barChartView.setVisibleXRangeMaximum(CGFloat(1)) 

    } 

} 
+0

あなたは 'barChartView.legend.direction = .LeftToRight'を変更しようとしましたか? –

+0

はい、あります。 '.LeftToRight'や'。 RightToLeftは何もしていない。 – Camon

+0

あなたは私の答えをお読みになりましたか? –

答えて

1

変数があるchartLegend.swiftファイルで:

public var direction = ChartLegendDirection.LeftToRight

はで変更を行うようにしてくださいそのファイルは、あなたの問題を解決するかもしれません。

0

このライブラリは、右から左への配置を直接サポートしていません。

参照してください - https://github.com/danielgindi/Charts/issues/738

あなたはそれが右から左の位置合わせをだます作るために、ライブラリレベルで何かを実装する必要があります。

周りのいくつかを働いた後、私は解決策を見つけた

編集答え、これはあなたを助けることを願っています。

Download sample code

import UIKit 

class ViewController: UIViewController { 


    @IBOutlet weak var barChartView: BarChartView! 

     override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     let months = ["7/23/2016", "7/22/2016", "7/21/2016", "7/20/2016", "7/19/2016", "7/18/2016", "7/17/2016"] 
     let unitsSold = [0.0, 0.0, 0.0, 0.0, 20.0, 50.0, 30.0] 

     setChart(months, values: unitsSold) 

    } 


    func setChart(dataPoints: [String], values: [Double]) { 

     var dataEntries: [BarChartDataEntry] = [] 

     for i in 0..<dataPoints.count { 
      if !values[i].isZero { 
       let dataEntry = BarChartDataEntry(value: values[i], xIndex: i) 
       dataEntries.append(dataEntry) 
      } 
     } 

     let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "") 
     let chartData = BarChartData(xVals: dataPoints, dataSet: chartDataSet) 
     barChartView.data = chartData 

     barChartView.leftAxis.enabled = false 
     barChartView.descriptionText = "" 
     barChartView.xAxis.labelPosition = .Bottom 

    } 
    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

enter image description here

+0

あなたが助けられたら答えを受け入れることができます。 – Hasya

関連する問題