Bu example ürününe göre D3 ile çoklu seri çizgi grafiği oluşturmak istiyorum. Benim sorunum, bazı değerler olduğuna eksik:Eksik değerler içeren çoklu seri tablosu (D3)
y x1 x2 x3
1 0.8 0.7
2 0.9 0.7
3 0.9 1.2 0.7
4 1.1 0.7
5 0.8 1.1 2.7
6 0.9 1.2 2.6
7 1.3 0.8
aşağıdaki grafiği elde etmek istiyorum: yeni başladığım veya sonunda
Eksik noktalarını bırakılmalıdır. Bazı noktaları bir çizgi içinde eksikse
d3.svg.line().defined(function (d) { return d.value; }
ile Ama, hat kesintiye uğramaması gerektiğini elde edebiliriz. Yeşil çizgi (x1) üzerindeki kod y = 3'te durur ve y = 5'de devam eder. Ama ben bu noktaları birbirine bağlamak istiyorum.
line().defined()
kullanılmadan, tüm eksik noktalar değeri 0
olarak ele alındı. Beni geçirmeden önce veri dizisinde eksik noktaları yerine hiçbir çözüm olduğunu düşünüyorum
: Burada
kodudur, ben bu özelliği uygulamak için bir yol bulmak için kullanılan grafiklerim işlevi, çünkü değerleri bir lejantta ve araç ipuçlarında göstermek zorundayım ve burada hesaplanmış değerleri gösteremiyorum. Örneğin, eğer fare ile y = 4 üzerinden hareket edersem, efsanedex1:-- x2:1.1 x3:0.8
görünmelidir (x1 burada herhangi bir değere sahip değildir). Ayrıca (gerçek) noktalar daire olarak gösterilmelidir. Ayrıca bellekte iki veri tablosu (gerçek ölçüm verileri ve grafik çizgilerinin artırılmış verileriyle bir saniye) almak istemiyorum.
onun önündeki veya arkasındaki değerini kaybetme: Verileriniz arasında geçiş yapabilir ve X * sütunlarınızın her biri için tanımlanmış olan ilk ve son tanımlı değeri bulabilirseniz, o zaman tanımlanmış olabilir (function (d, i) {if (i x * Tanımlı [Son]) false değerini döndürür, aksi halde true;}) –
Yogesh
Merhaba @stofl, lütfen kodun hangi bölümünün 0 olarak değerlendirileceğini belirtebilir misiniz? Bunu yapmak için uğraşıyorum. Şimdiye kadar, sadece grafikte görünmüyorlar. Teşekkürler, – DaRoGa
Fark, 'line1' (satır 12) ve 'line2' (satır 16) işlevi arasındadır. Hatırladığım kadarıyla, 'x()' fonksiyonu 13 satırında "null" olduğunda "0" değerini döndürdü. – stofl