質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

4039閲覧

Chartsを使って横スクロールする棒グラフを描画したい

pftyuk

総合スコア52

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/05/29 08:02

前提・実現したいこと

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の値を変更してみたのですがグラフの幅の大きさは変わりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ScrollableGraphViewというライブラリを導入して一旦解決しました

投稿2019/05/30 14:20

pftyuk

総合スコア52

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問