2016-04-07 11 views
-2

YAxis değerini sıfır olarak Highcharts Sütun grafiğinde & negatif değerlerle ortalamak istiyorum: https://drive.google.com/open?id=0B_IZwAPijvleZzBhUnVaSFhBcDQ, bu eksen değerleri dinamik olarak yüklenir. jqPlot ile, eksen ayarlarımda, gereksinimlerimi karşılayabilecek forceTickAt0 adında bir seçenek var, Evet, nasıl yapılacağını biliyorsanız, Highcharts ile bunun mümkün olup olmadığını bilmek istiyorum. Teşekkürler.Highcharts merkezi yaxis değeri sütun şemasında sıfırda

Güncelleme: Tamam, açıkça sorumu açıklamak için, bir jsFiddle oluşturduk. Grafikte gördüğünüz gibi, y eksenindeki maksimum/min seri değeri 5001/-4280'dir, ancak Highcharts y ekseninde 15000/-5000 gösterir ve 6000/-5000 olmasını beklerim. y1 ekseni serisinden ilk değeri 5001 kaldırın, Highcharts y-axis sınırında 5000/-5000 gösterecektir beklediğim şey. Bu yüzden y ekseninde bir 5001 değeri eklemek, y ekseninin çok uzağa gitmesine neden olur.

Anahtar nokta, y eksenindeki en büyük/en küçük seri değerinin grafik max/dak sınır değerinden çok fazla uzak olmasını istemiyorum.

Buradaki kod, açıklama amacıyla, burada seri veriler sabit değerleri kullanır, Gerçek bir durumda hepsi dinamik yüklüdür.

$(function() { 
    $('#container').highcharts({ 
    chart: { 
     zoomType: 'xy', 
     plotBackgroundColor: '#fffdf6', 
     alignTicks: true, 
    }, 
    title: { 
     text: 'Country Illegally Building Num Average Tax', 
    }, 
    subtitle: { 
     text: '' 
    }, 
    xAxis: [{ 
     categories: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'], 
     crosshair: true, 
     title: { 
     text: 'Country Code', 
     } 
    }], 
    yAxis: [{ // Primary yAxis 
     labels: { 
     format: '{value} ', 
     }, 
     title: { 
     text: 'Illegally Building Num', 
     }, 

    }, { // Secondary yAxis 
     min: 0, //Required to start at zero 
     title: { 
     text: 'Average Tax ($)', 
     style: { 
      color: '#666' 
     } 
     }, 
     labels: { 
     format: '{value} $', 
     style: { 
      color: '#666' 
     } 
     }, 
     opposite: true 
    }], 
    tooltip: { 
     shared: true 
    }, 
    legend: { 
     enabled: false 
    }, 
    series: [{ 
     color: 'red', 
     negativeColor: 'green', 
     name: 'Illegally Building Num', 
     type: 'column', 
     data: [5001, 369, 475, 891, 3585, 4235, -1711, -3648, -3749, -2555, -4280, -1017, 2001, -900], 
     tooltip: { 
     valueSuffix: ' ' 
     } 
    }, { 
     name: 'Average Tax', 
     type: 'line', 
     data: [140.5, 141, 139.5, 162, 151, 142, 147, 151, 154, 142, 146, 149, 153, 111.5], 
     yAxis: 1, 
     tooltip: { 
     valueSuffix: ' $' 
     } 
    }] 
    }); 
}); 
+0

1) min/max mutlak değildir. * TickInterval * ve * minPadding */* maxPadding * ile birlikte çalışır. Çoğu durumda, maksimum değeri açıklanan şekilde ayarlarsanız, "dost" bir maks. Bunu yapmazsanız, tickInterval ve maxPadding değerlerini ayarlayarak bunu etkileyebilirsiniz. – jlbriggs

+0

Max/min değeri ham verilere bağlıdır ve tickInterval coz y-ekseni değerlerini ayarlamak zor olabilir (belki sadece 1.000, 10.000, 100.000 veya 1,000,000 ... vs) –

+0

ayarını denediniz mi? bir min ve maks? Bu nasıl çalışıyorsa çalışmıyorsa, ayrıntılarla bir keman gönderin. Sadece verileri çizmeyi denediniz mi ve başka bir şey yapmaktan rahatsız değil misiniz? İstediğiniz şey, Highcharts için normal varsayılan davranışı gibi görünüyor - yine de, eğer nasıl çalışıyorsanız, ihtiyacınız olduğunda çalışmayanlarla ilgili daha ayrıntılı bilgileri içeren bir keman yayınlayın. – jlbriggs

cevap

1

Bir forceiTickAt0 olduğunu inanmıyorum, ama bu işlevsellik kolayca y ekseni min/max ayarlayarak gerçekleştirilebilir. Örneğin:

yAxis: { 
      min:-20, 
      max:20, 
      title: { 
       text: 'Axis Title' 
      }, 
      labels: { 
       formatter: function() { 
        return this.value + '°'; 
       } 
      }, 
      lineWidth: 2 
     }, 

Bu 0'dan bir merkez noktası olurdu ve verilerinizin bağlı dinamik dk mutlak değeri olarak maks.

+0

Lütfen güncellenmiş soruma bakın, teşekkürler. –