CorePlotで軸ラベルをマニュアルで設定やりかた。
ラベルのテキストとロケーションを設定する場合と、ラベルを表示させたいロケーションだけ設定する場合のやりかたをご紹介。
やりかた1:ラベルのテキストとロケーションを設定する場合
例えば、x=3の位置に、「月曜日」、x=5の位置に、「木曜日」と設定する場合。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//x軸の軸ラベルをマニュアルで設定する。 let axisSet = graph.axisSet as! CPTXYAxisSet let xAxis = axisSet.xAxis! xAxis.labelingPolicy = .none //ラベル用のスタイル let textStyle = CPTMutableTextStyle() textStyle.fontSize = 13.0 //ラベル1個目 let label1 = CPTAxisLabel(text: "月曜日", textStyle: textStyle) label1.tickLocation = 3 //ラベル2個目 let label2 = CPTAxisLabel(text: "木曜日", textStyle: textStyle) label2.tickLocation = 5 //x軸にセット xAxis.axisLabels = [ label1, label2, ] |
サンプルのため、単純に書いているが、実際には、for文等で回したりしながら、labelをつくっていく。
やりかた2:ラベルを表示させたいロケーションだけ設定する場合
ラベルを表示させたいロケーションだけ設定した、表示させる値は、データの値を表示させる。
1 2 3 4 5 6 7 8 9 10 11 |
//x軸の軸ラベルを、ロケーションを指定して表示する。 let axisSet = graph.axisSet as! CPTXYAxisSet let xAxis = axisSet.xAxis! xAxis.labelingPolicy = .locationsProvided //x軸のデータの値で指定する。 xAxis.majorTickLocations = [ NSNumber(value: 4), NSNumber(value: 9), ] |
ロケーションをセットする際は、実際に自分が扱っている値で指定する。
xAxis.labelFormatter等を設定すれば、データの値のフォーマットを細かく制御することもできる。
コメント