lineGenerator, yaptığımız kordinat dizisinden bir M (move to) ve L (line to) komutları dizisi oluşturmaktır. Şimdi bir path element öğesinin d niteliğini ayarlamak için pathData öğesini kullanabiliriz:
d3.select('path').attr('d',pathData);
1. Örnek çıktısı
Fonksiyonumuzu birkaç yolla daha yapılandırabiliriz:
Varsayılan olarak her bir dizi elemanı, 2 boyutlu bir dizi tarafından tanımlanan bir koordinatı temsil eder (örneğin, [0, 100]).
Bununla birlikte, çizgi oluşturucu her bir dizi öğesini .x() ve .y() işlevlerini kullanarak nasıl yorumlayacağını belirtebiliriz. Örneğin, verilerimizin bir nesne dizisi olduğunu varsayalım:
Yukarıdaki örnekte elimizdeki veri object olduğu için x için sıra numarasını y için değerini kullanmak istedik.
.defined()
Eksik veriler olduğunda bunları eleyebiliriz. Verilerimizde bir null olduğunu varsayalım:
Her bir koordinatın sadece null değilse geçerli olduğunu söyleyebiliriz:
2. Örnek çıktısı
.curve()
Ayrıca noktaların nasıl enterpolasyon yaptığını da yapılandırabiliriz. Örneğin, her veri noktasını bir B-spline ile enterpolasyon yapabiliriz:
3. Örnek çıktısı
Çok sayıda farklı eğri türü olmasına rağmen, ikiye bölünebilir: noktalardan geçenler (curveLinear, curveCardinal, curveCatmullRom, curveMonotone, curveNatural , curveStep) ve olmayanlar (curveBasis ve curveBundle).
Bu eğri türlerini deneyerek farklı şekillerde çizgiler çizebilirsiniz.
Canvas Çizme
Varsayılan olarak, çizgi oluşturucu, SVG path verilerini çıkarır. Bununla birlikte, .context() işlevini kullanarak bir canvasöğesine çizmek üzere yapılandırılabilir:
Radial Çizgi
Radyal çizgi üreteci diğerine benzer, ancak noktalar x ve y yerine açı (saat yönünde çalışır) ve yarıçapa dönüştürülür:
radial line
Elinizdeki veriyi düzgün kullanmak için 2 yardımcı fonksyiona sahip: