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

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

ただいまの
回答率

90.62%

  • Swift

    7008questions

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

swiftライブラリios-Chartでの線グラフの設定

受付中

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 735

keoisrer

score 2

swiftライブラリios-Chartでの線グラフの設定

勉強も兼ねてiphoneアプリを作っています。
グラフを描くためにライブラリとしてios-Chartを使っているのですが、軸の設定で line Chart(折れ線グラフ)のy軸の設定がわかりません。
x軸は LineChartView.xAxis.~
( chartView.xAxis.labelCount = 11
chartView.xAxis.axisMaxValue=31
chartView.xAxis.axisMinimum=1 ) など

で設定できたのですが y軸についてはLineChartView.yAxis.~はできないと出てきます。

やりたいこととしては 今0から表示されているy軸の値を0スタートでなく、任意に決めたいです。

ネットで日本語で書かれているものと英文のwikiは可能な限り読みましたが、わかりませんでした。

よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

試したこと

課題に対してアプローチしたことを記載してください

補足情報(言語/FW/ツール等のバージョンなど)

swift3
ios charts (3.0.3)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • xAxis

    2017/10/15 03:20

    この質問は解決してますか?

    キャンセル

  • keoisrer

    2017/10/15 07:12

    解決してません。無理やりとも考えたのですがうまくできそうにないのでやめました。

    キャンセル

回答 1

0

忘れっぽい自分へのメモの意味合いも含めて(特に(2)のとこ)。

iOS-Chartsはver.2とver.3で書き方が結構違っています。
んで質問の回答なのですがIndexAxisValueFormatterを使う or leftAxisまたはrightAxisaxisMinimumaxisMaximumをセットするという二つのアプローチがあります(これがyAxisに当たるものだったはず)。

環境

Xcode 9.0
swift 4.0
Charts 3.0.4

サンプルコード

    @IBOutlet weak var lineChart: LineChartView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let data = createData()
        setData(values: data)
        chartAppearance()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func createData() -> [ChartDataEntry] {
        return (0...11).map{ChartDataEntry(x: Double($0), y: Double(arc4random_uniform(10)))}
    }

    func setData(values: [ChartDataEntry]) {
        let set = LineChartDataSet(values: values, label: "legend")
        lineChart.data = LineChartData(dataSet: set)
    }

    func chartAppearance() {
        let xAxis = lineChart.xAxis

//        (1)
//        use leftAxis and rightAxis
//
//        let leftAxis = lineChart.leftAxis
//        let rightAxis = lineChart.rightAxis

        xAxis.drawAxisLineEnabled = false
        xAxis.drawGridLinesEnabled = false
        xAxis.forceLabelsEnabled = false
        xAxis.drawLabelsEnabled = false

//        (2)
//        if you want customLabel, use IndexAxisValueFormatter and calculate height of yAxis. then adjust yData of entries.
//
//        let values = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"]
//        let formatter = IndexAxisValueFormatter(values: values)
//        leftAxis.valueFormatter = formatter
//        leftAxis.setLabelCount(values.count, force: true)
//        leftAxis.granularity = 1.0
//        leftAxis.axisMinimum = 0.0
//        leftAxis.axisMaximum = Double(values.count - 1)

//        (3)
//        if you want simple unit, set only axisMinimum and axisMaximum
//
//        leftAxis.axisMinimum = 5.0
//        leftAxis.axisMaximum = 14.0

//        (4)
//        if you want more customizable charts, chage true
//
//        rightAxis.enabled = false
    }

簡単な説明

(1) xAxisは変わりありませんがY軸はleftAxisとrightAxisの二つを触っていくことになります。

(2) leftAxisのvalueFormatterにIndexAxisValueFormatterをセットする方法です。単位に文字列でなんでも入れられます。その代わりDataEntryだったりaxisMinimumやaxisMaximumをいい塩梅にしないといけません。若干面倒です。

(3) んでそんなのめんどくせーよって場合の(3)です。

今0から表示されているy軸の値を0スタートでなく、任意に決めたいです。

という条件ですし質問の書き方を見ると本命はこっちかもしれません。

(4) 今回はrightAxisは使いませんでした。混乱しやすいですし。

(2)のサンプル画像

sample

補足

(2)は泥沼にハマるかもしれません(自分はハマりました)。labelCountの上限値ありますし。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    オセロ 

    ブログを見ながらswiftでオセロを作ったのですが、うまく動作しませんでした。 詳しい内容としては初期状態から黒の石を打つとうった場所に黒石が表示されなかったり、裏返されるべき石が

  • 受付中

    swift 加速度をグラフで表示させたい

    加速度をグラフに表示させたいと思っています。 中々良いソースコードが見当たりません。 良いソースコードがああれば教えていただきたいです。 グラフの表示だけでも大丈夫です。

  • 解決済

    labelを点滅させるアニメーション

    iOSアプリをSwiftで作っています。 labelを点滅表示させたいのですが、調べても参考になるソースが見つかりませんでした。 知っている方がいましたらご教授いただけませんでしょ

  • 解決済

    CTCheckboxの大きさを変更したいのですが

    CTCheckboxというチェックボックスを作れるFrameworkがあります。 ライブラリの中身は以下のようになっています。 私はチェックボックスのサイズを大きくしたいので、CT

  • 受付中

    Swiftで折れ線グラフを書きたい

    前提・実現したいこと Swiftで図のような横軸時間、縦軸値段のような折れ線グラフを作成したいです。 時間とともに値段が変化していき、グラフに時間と値段をリアルタイムで更新して

  • 解決済

    presentViewControllerを使って遷移すると、navigationバーが消えてしまう

    現在iosアプリをつくっているのですが、presentViewControllerを使って画面遷移すると、次の画面でnavigationバーが消えてしまいます。 navigati

  • 解決済

    Swift エラー

    以下のプログラムを起動させると、 すぐにエラーが出てしまいます。 なぜですか?&どう解決すればいいのでしょうか? <エラー内容?> reason: [<userApp

  • 解決済

    swift3 UIbarbuttonItemにImageを設定すると、tintcolorで塗りつぶさ...

    https://github.com/dekatotoro/SlideMenuControllerSwift 上記の、SlideMenuSwift というライブラリを使って、スライ

同じタグがついた質問を見る

  • Swift

    7008questions

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