現在、リアルタイムチャートを作成中です。WebSocket 経由で流入するデータは、基本的に単純なタイムスタンプと値のペアで構成され、時間ベースの折れ線グラフで描画されます。今、私は問題に遭遇しました.最も安定したエレガントな方法は何だろうかと思います:
グラフの Y スケーリングは動的でなければならないため、表示されるデータの最小値と最大値を常に監視する必要があります。データ配列から最小/最大値を取得し、それらをチャートの下限と上限として設定するだけなので、この部分は簡単です。
ここで、これらの制限値にパディングを追加して、適切で丸みのある制限値を取得したいと考えました。たとえば、指定された範囲の最大値が である場合、24.7
上限を にしたいとします30
。私が必要としているのは、次の上位の "nice" 値を出力する 1 つのパラメーターを持つ関数です。ここではいくつかの例を示します。
0.13 --> 1
97.2 --> 100
17.08 --> 20
768 --> 800
-3.4 --> 0
116843 --> 200000
0.003 --> 0.01
使用できる数学関数はありますか? 私は間違いなく安定したものを必要としていますが、数字を数え始めて最初の数字を解析するなど、非常に醜いものでなければ、それを達成する方法がわかりません。
事前にご協力いただきありがとうございます。
よろしく、 ロブ
PS: 上限の値を取得することについて話しました。もちろん、下限の関数も必要ですが、解が見つかったら、上限の関数からそれを導き出すことができると思います。