1

次の 2 つの「公式」D3 ブレット チャートの例を 1 つにブレンドしようとしています。

http://bl.ocks.org/mbostock/4061961

ここに画像の説明を入力

http://boothead.github.io/d3/ex/bullet.html

ここに画像の説明を入力

前者をローカルで動作させ、後者の JS コードを「d3.chart.bullet」を「d3.bullet」に置き換えて (そして DOM オブジェクトを再参照して「ランダム化」することで)「プラグイン」することができました。イベントリスナー)。

ただし、ローカルのラベル タイプの「.ticks」呼び出しとの互換性は、そのように壊れています。理想的な世界では、等間隔の目盛りを一番下に配置し、ローカルの「データ ラベルの目盛り」を少し異なるスタイルで箇条書きの上に配置したいと考えています。

それはまったく可能ですか?D3マイナーバージョンが異なるように見えるので、私はそれを疑い始めています(nvd3互換性が必要なので、どちらもv2.xです)。それにもかかわらず、.ticks 呼び出しに依存しない「適切な」データラベルに頼るなど、目的を達成する方法について何か考えはありますか? ありがとう!

4

1 に答える 1

3

では、まず混乱を解決します。この例では:

http://boothead.github.io/d3/ex/bullet.html

バージョン 2.1 の d3.js と d3.chart.js という 2 つの異なるライブラリが魔法を実現します。この問題は、例全体をローカルに保存するときに発生します。これは、ブラウザーがファイル名の最初のドットのみを拡張子の処理に使用しているように見えるためです。したがって、ローカルでは、d3.chart.js は d3_002.js になり、D3 v2 の 2 番目のインスタンスのように見えます。もちろん、それを移動するとコードの失敗につながります。

教訓:元のソースの元の命名規則を常に見てください。「理想的な世界」のソリューションを達成したら、この回答を更新します。

編集: まだ作業中ですが、キーは d3.chart.js のどこかにあります。少なくとも私は始めて最初の問題を克服したので、それを答えとして受け入れます。

于 2013-06-13T13:56:04.907 に答える