亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有不同數組的 D3 行 .defined()

具有不同數組的 D3 行 .defined()

夢里花落0921 2022-01-13 16:31:47
ObserveableHQ 鏈接:https ://observablehq.com/@kickout/rectangles我在這里查看了這些來源我要解決的問題:我在嵌套數據對象上繪制了 3 條單獨的路徑(每個路徑都有不同的顏色)。這些路徑是根據 (x,y) 數據繪制的。當不同的數組(z)不匹配時,我想換行(在我的情況下為 d.chr)折線圖部分:ndat1.forEach(function(d) {    svg.append("path")    .attr('fill','none')    .attr("class",d.name)    .attr("stroke",colors(d.name))    .attr("d", line(d.effects))    .attr('opacity',0.1)    })線功能(沒有定義的代碼片段可以正常工作):line = d3.line()  //.defined(d => ndat1[d.chr]==1)  .x((d, i) => xScale(i))  .y(d => yScale(d))我是否將整個傳遞d給 line 函數(還沒有讓它工作),以便我可以訪問 y 數組(d.effects)和定義的數組(d.chr)?我基本上想使用與d3.line().defined()我不同的數組d3.line().y()
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

d3.line().defined只需要一個帶有真值/值的數組,或者null有幾個選項:


1)計算和數組你傳遞給的數組的長度d3.line(),ala: breaks =  dat.map(d => d.chr).map((d,i) => ndat1[0].chr[i-1] != ndat1[0].chr[i] && i>0 ? true : null)


2)選項1會起作用,但我認為它會排除已經有數據的點,所以我拼接了一些空值,并復制了所有其他方法(.defined(d => !isNaN(d.value)):


breaks =  dat.map(d => d.chr).map((d,i) => ndat1[0].chr[i-1] != ndat1[0].chr[i] && i>0 ? i : null)

br1=breaks.filter(d => d != null)

d3.range(4).forEach((d,i) => dat.splice(br1[i],0,{'chr':null,'pos':null}))


查看完整回答
反對 回復 2022-01-13
  • 1 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號