見栄えを良くするために、 tickSubDivide 回避策のバリエーションを利用しようとしています。ここで必要な結果が得られましたが、実装は非常に制限されていました (スライダーを変更すると、見た目があまり良くありません)。
私は方針を変更し、「実際の」軸からティックカウントに基づいて「偽の」軸を計算しようとしましたが、ティックカウントが変化するだけでなく、それぞれの値が変化することに気付いたとき、さらに多くの問題に遭遇しました。目盛りは表します。
私の次のステップは、それぞれを反復し、現在のティックと次のティックの間に.tick
新しいline
要素を生成し、戻って最初のティックを埋めることです...これはクマになるようです.
これを行うために使用しない価値がないかどうか疑問に思ってaxis
います...おそらく、自分でティックを作成する方が長期的にはより効率的でしょうか?
何かばかげたことをしてしまう前に、これをやってのけるより良い方法があるかどうか専門家に尋ねようと思いました。
明らかでない場合のために、私が目指している効果は次のとおりです。
| | | | | | | | | | | | |
| | 1 | | | 2 | | | 3 | |
| | | |
しかし、おそらくこれで解決するでしょう:
| | | | | | |
| 1 | 2 | 3 |
| | | |
スケールの範囲/ドメインは完全に動的である必要があります。
編集:私が使いたいと言いましたd3.time.scale
か?私の最初のスイープは、いくつかの奇妙な結果を生成します... スライダーで 202 と 203 の違いを確認してください (精度を得るには、キーボードを使用してください)。
http://jsbin.com/InEFISa/4/edit
編集 II : 既存の目盛りを埋めることを含む別の試みを行いました..
http://jsbin.com/AmIFAci/1/edit
私がしていることはコストがかかると思いますが、パフォーマンスを測定していません。また、ややずさんです...minorAxisGroup.selectAll('g').remove()
新しく構築したpoints
配列をでバインドする代わりに呼び出しています.data()
が、これはD3の精神ではありません。たぶん調整します。
.axis()
今度延長してみます。できるだけ多くの目盛りを 2 倍にレンダリングする方法が完全にはわかりません...いくつかのアイデアがありますが、懸念事項もあります。