2012-05-26 17 views
12

Sitemde yüksek şemalar yapıyorum, ancak sunum bakış açısından zorluyor.Highcharts sıfır değer etiketlerini kaldır

Veri yüklerim düzgün, ancak seri için bazı değerler sıfırdır. Etiketi sıfır değilken görüntülemek istiyorum, aksi halde okunması zorlaşır.

plotOptions: { 
    column: { 
    stacking: 'normal', 
    dataLabels: { 
      enabled: this.value == 0 ? false : true, 
     color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white' } 
} 
} 

Ama bu olmuyor:

Böyle bir şey yapmaya çalışıyorum. Sadece değer yerine 'bu' kullanmayı denedim ama aynı zamanda almadım. Kitaplıktan, özel kod oluşturmadan bunu yapmama izin veren bir varsayılan seçenek bulamadık.

Bazı yaklaşımları inceledim, ancak sıfırlar serilerden birinde. Bu yüzden hala etiketi grup için sıfır olmayan değerler için sunmak istiyorum. biri bireysel serisi tüm gruba değerini alır ve değil this.y dediğinde

Ben

Herhangi bir öneriniz ... düşünüyorsun? Açıkçası yanlış bir şey yapıyorum!

cevap

52

dataLabels için formatter seçeneğini kullanmayı denediniz mi? Verilerinize bunun içinde erişebilmeli ve etiketin nasıl görüneceğine karar verebilmelisiniz. Burada sıfır için kontrol edebilir ve aşağıda gösterilen null'u döndürebilirsiniz.

dataLabels: { 
    enabled: true, 
    color: colors[0], 
    style: { 
     fontWeight: 'bold' 
    }, 
    formatter: function() { 
     if (this.y != 0) { 
      return this.y +'%'; 
     } else { 
      return null; 
     } 
    } 
} 

Ayrıca, bakmak size Çalıştığınız nesneyi görebilmek için biçimlendirici fonksiyonunda console.log(this) kullanmak ne verilerinizin parçası endam sorun yaşıyorsanız. Bu çalışma jsfiddle örnekte dışarı

Kontrol: yardımcı http://jsfiddle.net/VLmKK/69/

Umut!

Güncelleme: Brett'in yorumlarında belirtildiği gibi görünmez bir etiket oluşturulmasını önlemek için boş dize yerine boş değer döndürün. Teşekkürler.

Ayrıca not return anything sıfır değerlerinde de olabilirsiniz.

+0

teşekkürler gizmotivation, açıklığa kavuşturmak için soruyu düzenledim. – Lievcin

+0

@Lievcin: Biçimlendirici seçeneği, her değeri istediğiniz gibi tek tek ele alır. Bunu highchart örnek dosyalarında test ettim. Sadece 0 olan veri noktalarından etiketler çıkardı. Bunu deneyebilir miydiniz? – christurnerio

+0

Sadece sizin için bir jsfiddle örneği ekledim. http://jsfiddle.net/gizmovation/VLmKK/ – christurnerio

İlgili konular