d3.js อัปเดตโดเมนเวลาตามการเลือกแปรง

ฉันกำลังพยายามอัปเดตโดเมนเวลา (แกน x) ของแผนภูมิเส้นตามพิกัด "แปรง" บนกราฟรอง

รหัสซอที่นี่ - https://jsfiddle.net/6xpcxvwj/7/

var brush = d3.brushX()
        .extent([[0, 0], [navWidth, navHeight]])
        .on("end", function () {

            xScale.domain(brush.extent());
            console.log("domain modified");

            svg.select("._x_axis").call(xAxis);
            console.log("x axis modified");

            svg.select("._line").attr("d", line);
            console.log("line modified");
        });

เนื่องจากมีบางอย่างผิดปกติในโค้ดด้านบน (ซึ่งอยู่ท้ายหน้าซอ) ซึ่งเมื่ออัปเดต (ย้ายแปรง) กราฟหลัก มันจะลบแกน x และแผนภูมิเส้นออก

รหัสจะขึ้นอยู่กับ https://bl.ocks.org/mbostock/1667367 แต่ด้วย ความแตกต่าง อย่างมากที่ชุดข้อมูลของฉันเป็นอาร์เรย์ โดยที่ในตัวอย่างเป็นไฟล์ csv


person kramasundar    schedule 19.08.2016    source แหล่งที่มา


คำตอบ (1)


ใน d3 เวอร์ชัน 4, d3.extent ไม่ทำงานอีกต่อไป ในลักษณะเดียวกัน (คุณไม่สามารถใช้งานได้อีกต่อไป) เพื่อให้ได้ขอบเขต แปรง) ฟังก์ชันนี้ได้ถูกสรุปเป็น d3.event.selection แทน ดังนั้นลอง:

var s = d3.event.selection;
xScale.domain([navXScale.invert(s[0]), navXScale.invert(s[1])]);

หลังจากแก้ไขแล้ว คุณจะต้องแนะนำเส้นทางคลิปในโครงเรื่องของคุณด้วย

อัปเดต ซอ

person Mark    schedule 19.08.2016