2016-07-05 8 views
-2

Ich habe eine horizontale Balkendiagramm mit einer logarithmischen x-Achse erstellt:Definieren des y-Startpunkts für schwebende horizontale Balkendiagramme in Chart.js?

var ctx = document.getElementById("myChart"); 
var myChart = new Chart(ctx, { 
    type: 'horizontalBar', 
    data: { 
     labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], 
     datasets: [{ 
      label: '# of Votes', 
      data: [1000000000, 100000000, 10000000, 1000000, 100000, 1000], 
      backgroundColor: [ 
       'rgba(255, 99, 132, 0.2)', 
       'rgba(54, 162, 235, 0.2)', 
       'rgba(255, 206, 86, 0.2)', 
       'rgba(75, 192, 192, 0.2)', 
       'rgba(153, 102, 255, 0.2)', 
       'rgba(255, 159, 64, 0.2)' 
      ], 
      borderColor: [ 
       'rgba(255,99,132,1)', 
       'rgba(54, 162, 235, 1)', 
       'rgba(255, 206, 86, 1)', 
       'rgba(75, 192, 192, 1)', 
       'rgba(153, 102, 255, 1)', 
       'rgba(255, 159, 64, 1)' 
      ], 
      borderWidth: 1 
     }] 
    }, 
    options: { 
     scales: { 
           xAxes: [{ 
         type: 'logarithmic', 
         position: 'bottom', 
         ticks: { 
          userCallback: function(tick) { 
           var remain = tick/(Math.pow(10, Math.floor(Chart.helpers.log10(tick)))); 
           if (remain === 1 || remain === 5) { 
            var test = tick.toString(); 
             if(test >= 1000 && test < 1000000){ 
              return tick/1000 + "kHz"; 
             }else if(test >= 1000000 && test < 1000000000){ 
              return tick/1000000 + "MHz"; 
             }else if(test >= 1000000000){ 
              return tick/1000000000 + "GHz"; 
             }else { 
              return tick.toString() + "Hz"; 
             } 



           } 
           return ''; 
          }, 
         }, 
         scaleLabel: { 
          labelString: 'Frequency', 
          display: true, 
         } 
        }] 
       } 
    } 
}); 

Aber ich kann nicht scheinen zu können, um den Startpunkt definieren, werden alle Balkendiagramme bei y-0 stammen.

Ich fragte mich, ob es mit Charts.js überhaupt möglich war, und wenn, wie, weil ich nicht in der Lage sein kann, irgendetwas in ihrer Dokumentation oder bei ihrem git zu finden, hat Googeln nicht half entweder.

Here is what I have right now.

Here is what I would like to have.

+0

Ich kann nicht scheinen, eine mögliche Lösung für Sie zu finden, da die Daten, die ein Balkendiagramm nimmt, nur Arrays sind. Wenn das einen Startpunktwert erlaubt, dann vielleicht, aber scheint nicht der Fall zu sein. Multi-Achsen Balkendiagramme könnten Ihnen helfen. –

+0

Ich fand einen Workaround, der einfacher scheint, aber danke für den Vorschlag, Multi-Achse würde auch funktionieren. – Aardi

+0

Ich habe die Option für gestapelte Diagramme gesehen, aber ich war mir nicht sicher, ob Sie dann jedem Balken eine andere Farbe geben könnten. Deshalb habe ich die Multiachsen-Option vorgeschlagen. –

Antwort

0

Der einzige Weg, wie der jetzt scheint auf der x-Achse die Balkendiagramm mit unsichtbaren Charts als Polsterung zu Stapeln (als here vorgeschlagen), es funktioniert ziemlich gut.

Möglicherweise gibt es auch eine mehrachsige Lösung, wie von @Arathi in den Kommentaren vorgeschlagen.