質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

3313閲覧

Swift3:Chartsライブラリでy軸の値の小数点をなくしたい

ra-men

総合スコア98

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/11/17 07:31

編集2022/01/12 10:55

Chartsライブラリをここを参考に導入したのですが、下の画像で言うところのグラフの上に出る値の16.0の".0"を表示せず"16"だけにしたいのですがどうしたら良いでしょうか?
イメージ説明

色々試して見たところIntからDoubleへ変換しているのですが"10"や"901"など特定の数値は".0"消えます。
常に消すにはどう言う設定が必要でしょうか?
よろしくお願いします。

追加:
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

BarChartDataSetの.valueFormatterで、フォーマットを設定します。

swift

1let dataSet = BarChartDataSet(省略) 2 3let nf = NSNumberFormatter() 4nf.allowsFloats = false //小数点禁止 5dataSet.valueFormatter = nf

試したChartsのバージョンが古い & Swift2なので、適当に修正して下さい。

IntAxisValueFormatter

swift

1class IntAxisValueFormatter: NSObject, IAxisValueFormatter { 2 public func stringForValue(_ value: Double, axis: AxisBase?) -> String { 3 return String(Int(value)) 4 } 5}

投稿2016/11/17 09:17

編集2016/11/18 15:31
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ra-men

2016/11/18 05:35

let nf = NumberFormatter()//Swift3に修正 nf.allowsFloats = false chartDataSet.valueFormatter = nf //エラー 型が違うようでエラーになってしまいました。 質問に画像を追加しました。
fuzzball

2016/11/18 06:05

Charts側が変わってしまったようですね。環境を作れないので他の方の回答をお待ち下さい。(ちょっとソースを覗いてみましたが良く分かりませんでした)
fuzzball

2016/11/18 09:11

ChartsDemoの中に、Formatters/IntAxisValueFormatter.m というのがあるのですが、これを使えば整数で表示出来そうです。(Swiftに書き直すか、そのまま持ってきて呼び出せるようにするか)
ra-men

2016/11/18 14:49

返信誠に感謝いたします。 その処理は参考にしたURLの中のコードにある // デリゲート。TableViewのcellForRowAtで、indexで渡されたセルをレンダリングするのに似てる。 public func stringForValue(_ value: Double, axis: AxisBase?) -> String { // 0 -> Jan, 1 -> Feb... return months[Int(value)] } X軸ラベルに任意のテキストに置き換えるものとは別物なのでしょうか?メソッド名が同じだったので Swift3に直して見ましたがこれをどこに記述すればよいのでしょうか、度々すみません。 わかる範囲で構いません。 func stringForValue(value: Double, axis: AxisBase) -> String { return (value as! Int) as! String }
fuzzball

2016/11/18 15:33 編集

あー!参考URLを見ていませんでした。バッチリ載ってますね! 記述するのは、これを使うViewControllerの中で良いと思います。(参考URLの通り) もしくは、このクラスだけ別ファイル(IntAxisValueFormatter.swift)にしてもいいと思います。 全く未検証ですが、回答にも追記しておきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問