前提・実現したいこと
Chartsというグラフ描画ライブラリを使って棒グラフを描画しました。
棒の数が増えるに連れ、棒の幅が自動で計算されグラフ全体が
一画面に収まるようなライブラリの仕組みになっているようですが
これを、棒の幅は一定で横スクロールするすることによって確認できるように
変更したいのですが、調べてもそもそも可能かどうか判断できなかったので
ご存知の方いらっしゃいましたら、ご教示頂きたいです。
ScrollableGraphViewというライブラリの導入も考えているのですが
後々に円グラフも作成予定なので、Charts一本で完結出来るのかを判断したいです。
宜しくお願い致します。
該当のソースコード
Swift
1import UIKit 2import Charts 3 4class BarChartsViewController: UIViewController { 5 6 @IBOutlet weak var barChartsView: BarChartView!{ 7 didSet{ 8 //タップでデータが選択できるか 9 barChartsView.highlightPerTapEnabled = false 10 //ピンチでズーム可能か 11 barChartsView.pinchZoomEnabled = false 12 //ダブルタップでズームが可能か 13 barChartsView.doubleTapToZoomEnabled = false 14 //X,Y方向にズームが可能か 15 barChartsView.scaleXEnabled = false 16 barChartsView.scaleYEnabled = false 17 //グラフの背景色 18 barChartsView.backgroundColor = UIColor.white 19 //グラフの棒のアニメーション 20 barChartsView.animate(yAxisDuration: 0.2) 21 //ドラッグが可能か 22 barChartsView.dragEnabled = false 23 24 //x軸のグリッド線の表示 25 barChartsView.xAxis.drawGridLinesEnabled = false 26 //x軸の軸線表示 27 barChartsView.xAxis.drawAxisLineEnabled = false 28 //x軸のラベル表示 29 barChartsView.xAxis.drawLabelsEnabled = false 30 31 //左y軸の軸線表示 32 barChartsView.leftAxis.drawAxisLineEnabled = false 33 //右y軸の軸線表示 34 barChartsView.rightAxis.drawAxisLineEnabled = false 35 //右y軸のラベル表示 36 barChartsView.rightAxis.drawLabelsEnabled = false 37 } 38 } 39 40 override func viewDidLoad() { 41 super.viewDidLoad() 42 43 let unitsSold = [2000.0, 4000.0, 600.0, 300.0, 1200.0, 1600.0] 44 45 createBarCharts(y: unitsSold) 46 } 47 48 private func createBarCharts(y:[Double]){ 49 var dataEntries = [BarChartDataEntry]() 50 51 for(i,value) in y.enumerated(){ 52 let dataEntry = BarChartDataEntry(x: Double(i), y: value) 53 dataEntries.append(dataEntry) 54 } 55 56 let chartDataSet = BarChartDataSet(entries: dataEntries, label: "") 57 barChartsView.data = BarChartData(dataSet: chartDataSet) 58 59 //グラフの色 60 chartDataSet.colors = [UIColor(red: 255/255, green: 0/255, blue: 0/255, alpha: 0.8)] 61 } 62}
試したこと
以下、項目数を増やした時のグラフの状態です。
グラフの幅を一定に、項目が増えた時はグラフが右側に追加されていき
右へのスクロールをすることによって、グラフが見えるようにしたいです。
let unitsSold = [2000.0, 4000.0, 600.0, 300.0, 1200.0, 1600.0]の場合
let unitsSold = [2000.0, 4000.0, 600.0, 300.0, 1200.0, 1600.0,1600.0,1600.0,1600.0]の場合
またこちらを参考にして
didSet内でborderLineWidthの値を変更してみたのですがグラフの幅の大きさは変わりませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。