お世話になります。
Swiftのグラフライブラリios-chartsを使用して、折れ線グラフを作っています。
最初のプロット(下記画像の赤い丸で囲んでいる箇所)に緑の丸が表示されない現象で悩んでおります。
色んな参考サイトを拝見しましたが皆さん、最初のプロットにも丸が表示されていました。
原因がわからないため、どなたかご教示頂けますと幸いです。
override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() // y軸のプロットデータ(検証用) let unitsSold = [55.0, 100.0, 80.0, 100.0, 45.0,55.0, 100.0, 80.0, 100.0, 45.0,55.0, 100.0, 80.0, 100.0, 45.0] initDisplay(y: unitsSold) } func initDisplay(y: [Double]) { self.scrollView = UIScrollView(frame: CGRect(x: 0, y: (self.navigationController?.navigationBar.frame.origin.y)! + (self.navigationController?.navigationBar.frame.height)!, width: self.view.frame.width, height: ((self.view.frame.height - ((self.navigationController?.navigationBar.frame.origin.y)! + (self.navigationController?.navigationBar.frame.height)!)) / 2) - 100)) self.scrollView.showsHorizontalScrollIndicator = false self.chartView = LineChartView(frame: CGRect(x: 0, y: 0, width: CGFloat(y.count * 65), height: ((self.view.frame.height - ((self.navigationController?.navigationBar.frame.origin.y)! + (self.navigationController?.navigationBar.frame.height)!)) / 2) - 100)) self.chartView.delegate = self // プロットデータ(y軸)を保持する配列 var dataEntries = [ChartDataEntry]() for (i, val) in y.enumerated() { let dataEntry = ChartDataEntry(x: Double(i), y: val) // X軸データは、0,1,2,... dataEntries.append(dataEntry) self.circleColors.append(UIColor.green) } // グラフをUIViewにセット lineDataSet = LineChartDataSet(values: dataEntries, label: "") chartView.data = LineChartData(dataSet: lineDataSet) // X軸のラベルを設定 let xaxis = XAxis() xaxis.valueFormatter = ChartFormatter() chartView.xAxis.valueFormatter = xaxis.valueFormatter // x軸のラベルをボトムに表示 chartView.xAxis.labelPosition = .bottom // x軸のラベル数をデータの数に設定 chartView.xAxis.labelCount = dataEntries.count - 1 // タップでプロットを選択できないようにする chartView.highlightPerTapEnabled = false chartView.leftAxis.axisMaximum = 100 //y左軸最大値 chartView.leftAxis.axisMinimum = 0 //y左軸最小値 chartView.leftAxis.labelCount = 5 //y軸ラベルの表示数 chartView.leftAxis.drawTopYLabelEntryEnabled = true // y軸の最大値のみ表示 chartView.leftAxis.forceLabelsEnabled = true //最小最大値ラベルを必ず表示? chartView.rightAxis.enabled = false // Y軸右軸(値)を非表示 chartView.extraTopOffset = 25 // 上から20pxオフセット chartView.noDataText = Const.RESULT_DATA_NOT_EXIST // データがない場合の表示文言 chartView.legend.enabled = false // 左下のラベル非表示 chartView.pinchZoomEnabled = false // ピンチズームオフ chartView.doubleTapToZoomEnabled = false // ダブルタップズームオフ // グラフの棒をニョキッとアニメーションさせる chartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0) // 横に赤いボーダーラインを描く(平均点で使用) let ll = ChartLimitLine(limit: 10.0, label: "") chartView.leftAxis.addLimitLine(ll) // グラフの色 lineDataSet.colors = [UIColor.green] // プロットの色 lineDataSet.circleColors = self.circleColors // プロットの大きさ lineDataSet.circleRadius = 5.0 // チャートが画面横幅をはみ出ていれば if self.chartView.frame.origin.x + self.chartView.frame.width > self.view.frame.width { //スクロール領域の設定 self.scrollView.contentSize = CGSize(width:self.chartView.frame.origin.x + self.chartView.frame.width, height:((self.view.frame.height - ((self.navigationController?.navigationBar.frame.origin.y)! + (self.navigationController?.navigationBar.frame.height)!)) / 2) - 100) } self.scrollView.addSubview(self.chartView) self.view.addSubview(self.scrollView) }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/06 07:51
2019/03/06 08:30