Qiitaの記事[Swift] [iOS] チャート表示ライブラリ [ios-charts]を参考に、iOS-Chartsを使ってレーダーチャートを作ってみました。
オプション(特に軸に関する部分)がわからず、試行錯誤の末このようなコードを書いたのですが、点数を5科目とも100点に設定すると、グラフが拡大されて(?)読めなくなってしまいます。
点数を例えば let array = [90.0, 80.0, 90.0, 70.0, 20.0]
と設定し直すと、もう1枚の画像のように表示されます。グリッド線が20刻みになっていないことなどから、軸の設定に問題があると予想しているのですが、解決法がわかりません。
Xcode 8.1 / swift 2.3 / Charts 2.3.1 を使用しています。
何かアドバイスをいただければ幸いです。よろしくお願いいたします。
import UIKit import Charts class ViewController: UIViewController { @IBOutlet weak var radarChartView: RadarChartView! //ラベル let subjects = ["国語", "英語", "数学", "理科", "社会"] //点数 let array = [100.0, 100.0, 100.0, 100.0, 100.0] override func viewDidLoad() { super.viewDidLoad() setChart(subjects, values: array) print("array:") print(array) } func setChart(dataPoints: [String], values: [Double]) { radarChartView.noDataText = "You need to provide data for the chart." var dataEntries: [ChartDataEntry] = [] for i in 0..<dataPoints.count { let dataEntry = ChartDataEntry(value: values[i], xIndex: i) dataEntries.append(dataEntry) } let chartDataSet = RadarChartDataSet(yVals: dataEntries, label: "Units Sold") let chartData = RadarChartData(xVals: subjects, dataSet: chartDataSet) radarChartView.data = chartData //radarChartのオプション radarChartView.sizeToFit() radarChartView.descriptionText = "" //ここから軸の設定。表示範囲は0から100までとし、20刻みでグリッド線を入れる radarChartView.yAxis.labelCount = 6 radarChartView.yAxis.axisMinValue = 0.0 radarChartView.yAxis.axisMaxValue = 100.0 //ここまで軸の設定 radarChartView.rotationEnabled = false chartDataSet.drawFilledEnabled = true //値は整数で表示 let numberFormatter = NSNumberFormatter() numberFormatter.generatesDecimalNumbers = false chartDataSet.valueFormatter = numberFormatter radarChartView.yAxis.valueFormatter = numberFormatter //その他のオプション! radarChartView.legend.enabled = false radarChartView.yAxis.gridAntialiasEnabled = true radarChartView.animate(yAxisDuration: 2.0) }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/06 08:17