【Swift】円グラフの表示をDoubleからIntにする方法

SwiftのフレームワークChartsを使うと円グラフが描ける。

左側が普通に書いた場合。デフォルトはDoubleで表示されるので、「1.00」のように余計な0が含まれる。

右側は今回やりたいこと。「1」のように余計な0は含めない。

そもそもデータを入れるときにIntにすれば良いのでは?

と疑問に思う方もいるだろう。

私もその一人だった。

しかし、PieChart のデータを格納する`PieChartDataEntry`をみるとvalueはDoubleしか用意されていない。

!!!

まさかの展開。

しょうがないのでDoubleで格納しデータフォーマットを変える。

(何だかコードが長くなって嫌だな。)

let data = PieChartData(dataSet: pieChartDataSet)
        
// 最低値を0に(Double→Int)
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 0
data.setValueFormatter(DefaultValueFormatter(formatter: formatter))

これで0以上の値のみ表示できるようになる。

参考:

https://stackoverflow.com/questions/44786924/swift-charts-chart-value-int-instead-of-double

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog