マウスオーバーイベントで棒グラフを遷移するときの「TypeError:d isundefined」

J.ハーレイ

棒グラフにトランジションを追加する作業をしていました。トランジションは軸から始まり、目的の高さまで上昇します。トランジションは機能しましたが、マウスオーバーイベントが機能しなくなりました。dすでにデータをplwdhBarオブジェクトに追加していて、コードの後半でそれを呼び出しているのに、なぜが未定義なのか混乱しています。

同様の解決策を検討したところ、解決策は棒グラフの棒を1回呼び出してデータから設定し、次に遷移を追加してから、マウスオーバーイベントを追加することであるように見えました。

これが私が現在持っているものです:(トランジションはshowTooltip(d)機能しているがマウスオーバーは機能していない、関数のエラーが発生する)

var plwdhBar = svg.append("g")
d3.csv("Data/"+name+".csv").then(function(dataset) {
    plwdhBar.selectAll("plwdhBar") //bar2
        .data(dataset)
        .enter()
        .append("rect")
        .attr("class","plwdhBar")
        .attr("width", 30)
        .attr("fill", bar2Color)
        .attr("x",(d)=>xScale(d.year)+(barW/2)-15)
        .attr("y", h-margin.bottom)
        .transition()
        .duration(200)
        .attr("y",(d)=>yBarScale(d.plwdh))
        .attr("height", (d)=>(h-yBarScale(d.plwdh)) -margin.bottom)
    plwdhBar.on("mouseover",function(d){
        showTooltip(d);
    }).on("mouseout",function(){
        removeTooltip();
    });
}

また、トランジションのコード行を取り出して作成してみました。

plwdhBar.transition()
    .duration(200)
    .attr("y",(d)=>yBarScale(d.plwdh))
    .attr("height", (d)=>(h-yBarScale(d.plwdh)) -margin.bottom)

ただし、それでも未定義のエラーが発生しました d

すべての状況でのエラーはTypeError: d is undefinedremoveToolTip(d)関数が呼び出されたときに最初のコードスニペットで発生し、2番目のコードスニペットが実装されているシナリオでは、エラーが.attr("y",(d)=>yBarScale(d.plwdh))行で発生します。

ジェラルド・フルタド

これはあなたのplwdhBar変数です:

var plwdhBar = svg.append("g");

これだけで、それ以上はありません。それにバインドされたデータはありません。この情報はここで何が悪いのかを理解するために重要なので、これを覚えておいてください。

次に、次のことを行います。

plwdhBar.selectAll("plwdhBar")
    .data(dataset)
    .enter()
    .append("rect")
    //etc...

もちろん、これは長方形を追加することであり、そのチェーンリスナーを追加すると機能します。しかし、これ何であるかを変えないという事実に注意してくださいplwdhBar、それvar plwdhBar = svg.append("g");は最初に示したように、そのままであり続けます。

したがって、後で行うとき...

plwdhBar.on("mouseover",function(d){
    showTooltip(d);
})

...もちろん、ここにはデータがないため、エラーが発生します。

解決策:選択に名前を付けてください

例えば:

var foo = plwdhBar.selectAll("plwdhBar")
    .data(dataset)
    .enter()
    .append("rect")
    //etc...

今、あなたはすることができます:

foo.on("mouseover",function(d){
    showTooltip(d);
})

ただし、重要なアドバイスがあります。遷移には、という名前のメソッドもありonます。したがって、メインチェーンからトランジションを削除します。そうしないと、別のエラーが発生します(これとは関係ありません)。トランジションは個別に追加できます。

foo.transition()
    //etc...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Select2 "TypeError:a isundefined"エラー

分類Dev

Angular 6-エラーTypeError: "this.router isundefined"

分類Dev

Angular 6-エラーTypeError: "this.router isundefined"

分類Dev

reactstrapDropdownMenuを使おうとすると `popperManager isundefined`

分類Dev

WebDriverException:メッセージ:TypeError:rect isundefined

分類Dev

VueJS-マウントされたフックのエラー: "TypeError:this。$ store isundefined"

分類Dev

AngularJS .isUndefined

分類Dev

dc.js-ブラシを使用する場合の「TypeError:_x isundefined」

分類Dev

Angular8のWordpressAPI。エラーTypeError: "_co.item isundefined"

分類Dev

ifステートメントの「isundefined」エラーを防止します

分類Dev

c ++ sql接続 "get_driver_instance(); isundefined"エラー

分類Dev

[Vue警告]:レンダリングエラー: "TypeError:_vm.activity.activity isundefined"

分類Dev

currentUser isundefinedが未定義で表示されます

分類Dev

Lodash isUndefinedは、予期しない結果をもたらします

分類Dev

IE11でファイルをダウンロードすると、「 'Uint8Array' isundefined」というエラーが発生します

分類Dev

ネストされたオブジェクトのアイテムを削除する方法//エラーTypeError: "_ v.context。$ implicit isundefined"

分類Dev

PrimeFaces OverlayPanelにより、JavaScriptエラー「TypeError:f isundefined」が発生します

分類Dev

PrimeFaces OverlayPanelにより、JavaScriptエラー「TypeError:f isundefined」が発生します

分類Dev

スムーズscrolling.jsが「$ target.offset(...)isundefined」エラーをスローするのはなぜですか?

分類Dev

スムーズscrolling.jsが「$ target.offset(...)isundefined」エラーをスローするのはなぜですか?

分類Dev

AngularにisDefined関数とisUndefined関数があるのはなぜですか?

分類Dev

反応プロジェクトでこのエラー「TypeError:toLocation isundefined」が発生します

分類Dev

Jupyter NotebookにBokehをロードすると、次のようになります。TypeError:a.Operator isundefined

分類Dev

ReferenceError:isUndefinedはangular-local-storageで定義されていません

分類Dev

File API trhown "TypeError:e isundefined"を使用してJavaScriptでファイルを読み取る

分類Dev

NetlifyCMSビルドで「TypeError:childImageSharp isundefined」を修正するにはどうすればよいですか?

分類Dev

エラー:「v-onハンドラーのエラー:「TypeError:this.filter isundefined」」がvueでレンダリングされているリストにありますか?

分類Dev

再帰のバグが少ない-ネストされた名前空間に含まれる再帰的なミックスインを、含まれている名前空間から呼び出すと、「isundefined」が生成されます

分類Dev

マウスオーバーイベントでd3円グラフにテキストを追加する

Related 関連記事

  1. 1

    Select2 "TypeError:a isundefined"エラー

  2. 2

    Angular 6-エラーTypeError: "this.router isundefined"

  3. 3

    Angular 6-エラーTypeError: "this.router isundefined"

  4. 4

    reactstrapDropdownMenuを使おうとすると `popperManager isundefined`

  5. 5

    WebDriverException:メッセージ:TypeError:rect isundefined

  6. 6

    VueJS-マウントされたフックのエラー: "TypeError:this。$ store isundefined"

  7. 7

    AngularJS .isUndefined

  8. 8

    dc.js-ブラシを使用する場合の「TypeError:_x isundefined」

  9. 9

    Angular8のWordpressAPI。エラーTypeError: "_co.item isundefined"

  10. 10

    ifステートメントの「isundefined」エラーを防止します

  11. 11

    c ++ sql接続 "get_driver_instance(); isundefined"エラー

  12. 12

    [Vue警告]:レンダリングエラー: "TypeError:_vm.activity.activity isundefined"

  13. 13

    currentUser isundefinedが未定義で表示されます

  14. 14

    Lodash isUndefinedは、予期しない結果をもたらします

  15. 15

    IE11でファイルをダウンロードすると、「 'Uint8Array' isundefined」というエラーが発生します

  16. 16

    ネストされたオブジェクトのアイテムを削除する方法//エラーTypeError: "_ v.context。$ implicit isundefined"

  17. 17

    PrimeFaces OverlayPanelにより、JavaScriptエラー「TypeError:f isundefined」が発生します

  18. 18

    PrimeFaces OverlayPanelにより、JavaScriptエラー「TypeError:f isundefined」が発生します

  19. 19

    スムーズscrolling.jsが「$ target.offset(...)isundefined」エラーをスローするのはなぜですか?

  20. 20

    スムーズscrolling.jsが「$ target.offset(...)isundefined」エラーをスローするのはなぜですか?

  21. 21

    AngularにisDefined関数とisUndefined関数があるのはなぜですか?

  22. 22

    反応プロジェクトでこのエラー「TypeError:toLocation isundefined」が発生します

  23. 23

    Jupyter NotebookにBokehをロードすると、次のようになります。TypeError:a.Operator isundefined

  24. 24

    ReferenceError:isUndefinedはangular-local-storageで定義されていません

  25. 25

    File API trhown "TypeError:e isundefined"を使用してJavaScriptでファイルを読み取る

  26. 26

    NetlifyCMSビルドで「TypeError:childImageSharp isundefined」を修正するにはどうすればよいですか?

  27. 27

    エラー:「v-onハンドラーのエラー:「TypeError:this.filter isundefined」」がvueでレンダリングされているリストにありますか?

  28. 28

    再帰のバグが少ない-ネストされた名前空間に含まれる再帰的なミックスインを、含まれている名前空間から呼び出すと、「isundefined」が生成されます

  29. 29

    マウスオーバーイベントでd3円グラフにテキストを追加する

ホットタグ

アーカイブ