回答編集履歴

2

編集

2020/09/07 12:44

投稿

tsuki01
tsuki01

スコア1751

test CHANGED
@@ -48,200 +48,12 @@
48
48
 
49
49
 
50
50
 
51
- **動作結果(25番目の要素だけ丸ポチ表示)**
52
-
53
- ![実行例](bfce0cdd8bade2cecae1d985ea3378c6.png)
54
-
55
-
56
-
57
51
  ---
58
52
 
59
53
 
60
54
 
61
- **サンプル処理全体**
55
+ **動作結果(25番目要素だけ丸ポチ表示)**
62
56
 
63
57
  ※右記記事の処理を応用:[iOS-Chartsの始め方](https://qiita.com/ioschartsman/items/2e510d311cc4fcd25608)
64
58
 
65
- ```Swift
66
-
67
- import UIKit
68
-
69
- import Charts
70
-
71
-
72
-
73
- class ViewController: UIViewController {
74
-
75
-
76
-
77
- var chart: CombinedChartView!
78
-
79
- var lineDataSet: LineChartDataSet!
80
-
81
- var bubbleDataSet: BubbleChartDataSet!
82
-
83
-
84
-
85
- override func viewDidLoad() {
86
-
87
- super.viewDidLoad()
88
-
89
-
90
-
91
- //combinedDataを結合グラフに設定する
92
-
93
- let combinedData = CombinedChartData()
94
-
95
-
96
-
97
- //結合グラフに線グラフのデータ読み出し
98
-
99
- combinedData.lineData = generateLineData()
100
-
101
-
102
-
103
- //グラフのサイズ設定、座標設定
104
-
105
- chart = CombinedChartView(frame: CGRect(x: 0, y: 20, width: self.view.frame.width , height: self.view.frame.height - 20))
106
-
107
-
108
-
109
- //chartのデータにcombinedDataを挿入する
110
-
111
- chart.data = combinedData
112
-
113
-
114
-
115
- //chartを出力
116
-
117
- self.view.addSubview(chart)
118
-
119
-
120
-
121
- }
122
-
123
-
124
-
125
- override func didReceiveMemoryWarning() {
59
+ ![実行例](bfce0cdd8bade2cecae1d985ea3378c6.png)
126
-
127
- super.didReceiveMemoryWarning()
128
-
129
- // Dispose of any resources that can be recreated.
130
-
131
- }
132
-
133
-
134
-
135
-
136
-
137
- func generateLineData() -> LineChartData
138
-
139
- {
140
-
141
-
142
-
143
- //リストを作り、グラフのデータを追加する方法(GitHubにあったCombinedChartViewとかMPAndroidChartのwikiを参考にしている
144
-
145
- //データを入れていく、多重配列ではないため別々にデータは追加していく
146
-
147
- let values: [Double] = [0, 254, 321, 512, 214, 444, 967, 101, 765, 228,
148
-
149
- 726, 253, 20, 123, 512, 448, 557, 223, 465, 291,
150
-
151
- 979, 134, 864, 481, 405, 711, 1106, 411, 455, 761]
152
-
153
- let date : [Double] = [1,2,3,4,5,6,7,8,9,10,
154
-
155
- 11,12,13,14,15,16,17,18,19,20,
156
-
157
- 21,22,23,24,25,26,27,28,29,30]
158
-
159
-
160
-
161
- //DataSetを行うために必要なEntryの変数を作る データによって入れるデータが違うため複数のentriesが必要になる?
162
-
163
- var entries: [ChartDataEntry] = Array()
164
-
165
- for (i, value) in values.enumerated(){
166
-
167
- entries.append(ChartDataEntry(x: date[i], y: value, icon: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil)))
168
-
169
- }
170
-
171
-
172
-
173
- //データを送るためのDataSet変数をリストで作る
174
-
175
- var linedata: [LineChartDataSet] = Array()
176
-
177
-
178
-
179
- //リストにデータを入れるためにデータを成形している
180
-
181
- //データの数値と名前を決める
182
-
183
- lineDataSet = LineChartDataSet(entries: entries, label: "Line chart unit test data")
184
-
185
- lineDataSet.drawIconsEnabled = false
186
-
187
- //グラフの線の色とマルの色を変えている
188
-
189
- lineDataSet.colors = [NSUIColor.red]
190
-
191
-
192
-
193
- // ==================================================
194
-
195
- // MARK: 編集スタート
196
-
197
- // カラー配列生成(データ数分ループさせる)
198
-
199
- // ※特定要素(今回は25番目)の時だけ色指定する
200
-
201
- var circleColors = [NSUIColor]()
202
-
203
- for i in 0 ..< date.count {
204
-
205
- if date[i] == 25.0 {
206
-
207
- circleColors.append(UIColor.red)
208
-
209
- } else {
210
-
211
- circleColors.append(UIColor.clear)
212
-
213
- }
214
-
215
- }
216
-
217
-
218
-
219
- // LineChartDataSetのカラー配列に、上記配列指定
220
-
221
- //lineDataSet.circleColors = [NSUIColor.red]
222
-
223
- lineDataSet.circleColors = circleColors
224
-
225
- // // ==================================================
226
-
227
-
228
-
229
- //上で作ったデータをリストにappendで入れる
230
-
231
- linedata.append(lineDataSet)
232
-
233
-
234
-
235
- //データを返す。
236
-
237
- return LineChartData(dataSets: linedata)
238
-
239
- }
240
-
241
-
242
-
243
- }
244
-
245
-
246
-
247
- ```

1

編集

2020/09/07 12:44

投稿

tsuki01
tsuki01

スコア1751

test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- 以下リンク先などを参考に、特定の要素の時のみ色を指定するのは実現できないでしょうか。
5
+ 以下リンク先などを参考に、特定の要素の時のみ、カラー配列の色を指定するのは実現できないでしょうか。
6
-
6
+
7
- ・特定要素の時:丸ポチの色を指定
7
+ ・特定要素の時  任意の丸ポチの色を指定
8
-
8
+
9
- ・特定要素以外の時:丸ポチの色をClear指定
9
+ ・特定要素以外の時:丸ポチの色は透過指定
10
10
 
11
11
 
12
12
 
@@ -51,3 +51,197 @@
51
51
  **動作結果(25番目の要素だけ丸ポチ表示)**
52
52
 
53
53
  ![実行例](bfce0cdd8bade2cecae1d985ea3378c6.png)
54
+
55
+
56
+
57
+ ---
58
+
59
+
60
+
61
+ **サンプルの処理全体**
62
+
63
+ ※右記記事の処理を応用:[iOS-Chartsの始め方](https://qiita.com/ioschartsman/items/2e510d311cc4fcd25608)
64
+
65
+ ```Swift
66
+
67
+ import UIKit
68
+
69
+ import Charts
70
+
71
+
72
+
73
+ class ViewController: UIViewController {
74
+
75
+
76
+
77
+ var chart: CombinedChartView!
78
+
79
+ var lineDataSet: LineChartDataSet!
80
+
81
+ var bubbleDataSet: BubbleChartDataSet!
82
+
83
+
84
+
85
+ override func viewDidLoad() {
86
+
87
+ super.viewDidLoad()
88
+
89
+
90
+
91
+ //combinedDataを結合グラフに設定する
92
+
93
+ let combinedData = CombinedChartData()
94
+
95
+
96
+
97
+ //結合グラフに線グラフのデータ読み出し
98
+
99
+ combinedData.lineData = generateLineData()
100
+
101
+
102
+
103
+ //グラフのサイズ設定、座標設定
104
+
105
+ chart = CombinedChartView(frame: CGRect(x: 0, y: 20, width: self.view.frame.width , height: self.view.frame.height - 20))
106
+
107
+
108
+
109
+ //chartのデータにcombinedDataを挿入する
110
+
111
+ chart.data = combinedData
112
+
113
+
114
+
115
+ //chartを出力
116
+
117
+ self.view.addSubview(chart)
118
+
119
+
120
+
121
+ }
122
+
123
+
124
+
125
+ override func didReceiveMemoryWarning() {
126
+
127
+ super.didReceiveMemoryWarning()
128
+
129
+ // Dispose of any resources that can be recreated.
130
+
131
+ }
132
+
133
+
134
+
135
+
136
+
137
+ func generateLineData() -> LineChartData
138
+
139
+ {
140
+
141
+
142
+
143
+ //リストを作り、グラフのデータを追加する方法(GitHubにあったCombinedChartViewとかMPAndroidChartのwikiを参考にしている
144
+
145
+ //データを入れていく、多重配列ではないため別々にデータは追加していく
146
+
147
+ let values: [Double] = [0, 254, 321, 512, 214, 444, 967, 101, 765, 228,
148
+
149
+ 726, 253, 20, 123, 512, 448, 557, 223, 465, 291,
150
+
151
+ 979, 134, 864, 481, 405, 711, 1106, 411, 455, 761]
152
+
153
+ let date : [Double] = [1,2,3,4,5,6,7,8,9,10,
154
+
155
+ 11,12,13,14,15,16,17,18,19,20,
156
+
157
+ 21,22,23,24,25,26,27,28,29,30]
158
+
159
+
160
+
161
+ //DataSetを行うために必要なEntryの変数を作る データによって入れるデータが違うため複数のentriesが必要になる?
162
+
163
+ var entries: [ChartDataEntry] = Array()
164
+
165
+ for (i, value) in values.enumerated(){
166
+
167
+ entries.append(ChartDataEntry(x: date[i], y: value, icon: UIImage(named: "icon", in: Bundle(for: self.classForCoder), compatibleWith: nil)))
168
+
169
+ }
170
+
171
+
172
+
173
+ //データを送るためのDataSet変数をリストで作る
174
+
175
+ var linedata: [LineChartDataSet] = Array()
176
+
177
+
178
+
179
+ //リストにデータを入れるためにデータを成形している
180
+
181
+ //データの数値と名前を決める
182
+
183
+ lineDataSet = LineChartDataSet(entries: entries, label: "Line chart unit test data")
184
+
185
+ lineDataSet.drawIconsEnabled = false
186
+
187
+ //グラフの線の色とマルの色を変えている
188
+
189
+ lineDataSet.colors = [NSUIColor.red]
190
+
191
+
192
+
193
+ // ==================================================
194
+
195
+ // MARK: 編集スタート
196
+
197
+ // カラー配列生成(データ数分ループさせる)
198
+
199
+ // ※特定要素(今回は25番目)の時だけ色指定する
200
+
201
+ var circleColors = [NSUIColor]()
202
+
203
+ for i in 0 ..< date.count {
204
+
205
+ if date[i] == 25.0 {
206
+
207
+ circleColors.append(UIColor.red)
208
+
209
+ } else {
210
+
211
+ circleColors.append(UIColor.clear)
212
+
213
+ }
214
+
215
+ }
216
+
217
+
218
+
219
+ // LineChartDataSetのカラー配列に、上記配列指定
220
+
221
+ //lineDataSet.circleColors = [NSUIColor.red]
222
+
223
+ lineDataSet.circleColors = circleColors
224
+
225
+ // // ==================================================
226
+
227
+
228
+
229
+ //上で作ったデータをリストにappendで入れる
230
+
231
+ linedata.append(lineDataSet)
232
+
233
+
234
+
235
+ //データを返す。
236
+
237
+ return LineChartData(dataSets: linedata)
238
+
239
+ }
240
+
241
+
242
+
243
+ }
244
+
245
+
246
+
247
+ ```