問題タブ [ios-charts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 別の方法から値を取得して iOS チャートにポイントをプロットする方法
json api から値を取得してグラフを作成したい。requestFinished メソッドで定義しましたが、setDataCount メソッドで値を呼び出したいです。
requestFinished メソッドでモデルを次のように定義しました。
ここで、json の値「val」でポイントをプロットする必要があります。ランダムに数値を生成してプロットする次のコードを試しました。その代わりに、どうすればvalを取得できますか?
コードは次のとおりです。
yVals の代わりに、次のようなことをしたい:
しかし、setDataCount メソッドの requestFinished メソッドから値を取得できません。
また、1 つの iid のグラフを 1 つのビューに表示したいと考えています。どうすればいいですか?
私はiOSチャートライブラリを使用しています。助けてください。
mpandroidchart - ios-charts データ設定後に無効化・再描画する方法
下部の更新を参照してください (2015 年 4 月 30 日)
ios-charts を使用して Swift for iOS で円グラフを実装しており、凡例をカスタマイズすることを選択しました。注目すべきは、チャートが UICollectionView のセル内に表示されることです。問題は、最初の表示で、カスタム凡例のコンテンツが表示されないことです。代わりに、データから生成された凡例コンテンツを取得します。
ビューを画面外にスクロールしてから画面に戻すと、適切なカスタム凡例が表示されます。したがって、カスタム凡例を設定した後、再描画/再レイアウト/再作成を強制する必要があると推測しています。私はそれを行う方法を理解していません。 誰にもアイデアはありますか?私は何かを完全に見逃していますか?ありがとう!
初期表示のグラフ - データによって生成された (間違った) 凡例
スクロールして画面に戻った後のチャート - (適切な凡例)
このチャートを描画するための私のコードは次のとおりです。
2015 年 4 月 30 日更新
MPAndroidChart (ios-charts のベース) の作成者との議論に基づいて、「最初の描画」で凡例を上書きできるグラフ表示ライフサイクルのポイントがないようです。基本的に、グラフは作成時にレンダリングされます。グラフにデータを設定すると、グラフはそのデータを使用して凡例を作成し、レンダリングします。データ設定時点とチャート描画時点の間で凡例を変更することはできません。
setNeedsDisplay()
場合によっては、チャートがレンダリングされるのを待って凡例を更新し、chart.setNeedsDisplay() を呼び出してチャートを再描画するように通知することができます。残念ながら、これにはタイミングの問題があります。グラフをレンダリングした直後にこのメソッドを呼び出すと、起動しないか、(可能性が高い) 起動が早すぎて事実上無視されます。私のコードでは、この呼び出しを viewDidLoad または viewDidAppear 内に配置しても効果はありませんでした。でも...
Java for Android (MPAndroidChart を使用) で同じグラフを作成すると、同じ問題が発生します。少しいじった後、(Handler.postDelayed() を使用して) 遅延後に chart.invalidate() を呼び出すと、適切に起動することに気付きました。iOS の ios-charts でも同様のアプローチが機能することがわかりました。
GCD を使用して setNeedsDisplay() の呼び出しを遅らせると、レンダリング後の数ミリ秒でもうまくいくようです。ViewController でチャートのビューを初期化した直後に次のコードを追加しました (「セル」は、チャート ビューを含む UICollectionViewCell です)。
この SO 投稿のすばらしい「遅延」メソッドを使用する: https://stackoverflow.com/a/24318861
明らかに、これは厄介なハックですが、うまくいくようです。ただし、このハックを本番環境で使用するというアイデアが好きかどうかはわかりません。
この投稿に出くわした Android 関係者向け:
次のコードは、MPAndroidChart を使用して同じ効果を実現します。
mpandroidchart - 円グラフをタッチ不可に設定
この素晴らしいプロッター フレームワーク ios-charts を使用しています。Android バージョンのドキュメントには、「setTouchEnabled(false)」を使用してチャートのタッチ イベントを無効にできると記載されています。ただし、iOS バージョンではこの機能を見つけることができません。「touchesBegan」はここに行く方法でしょうか? iOSプログラミングに慣れていないので、タッチイベントにはあまり詳しくありません。
ios - iOS-Charts の null データ ポイントがチャートに表示されない
iOS 8 の Health アプリのように、X 軸のラベルがまだあるのに null/空のデータ ポイントが表示されません。プロジェクトのチャート ライブラリとしてiOS-Chartsを使用することは可能ですか?
ios - Swift: タイプ [CombinedChartView.DrawOrder] の値を [int] の値に割り当てることはできません
https://github.com/danielgindi/ios-charts/を使用し ています。デリゲートを実装しました: ChartViewDelegate
コード:
しかし、私はこのエラーがあります:
Obj-C では drawOrder を使用できますが、同じコードに対して Swift では使用できません。これを解決する方法はありますか?
ios - 「チャート」の基になるモジュールを読み込めません
iOSチャートライブラリを使い始めたばかりです:
メイン ページ ( https://github.com/danielgindi/ios-charts )の「使用方法」で説明されているすべての手順に従いました。
を追加し
UIView
てサブクラス LineChartViewにしました
--> in ViewController.swift
: 行import Charts
でエラーが発生します:Cannot load underlying module for 'Charts'
何故ですか ?
ありがとうございました !