2013-06-11 12 views
8

Sto usando Google Chart API per creare un grafico per valori che vanno da 1 a milioni.Come etichettare le barre del grafico a colonne di Google

Problemi Le barre che rappresenta i valori minori (es: meno di 50 circa) sono invisibili sul grafico e nessun modo posso vedere quali valori corrispondono a taluni asse x.

Questo sarebbe risolto se posso in qualche modo stampare i valori dell'asse Y in cima alle barre. Ma non ho trovato alcuna menzione nel documento API su come farlo.

C'è un problema simile qui, ma non risponde alla mia domanda.

put labels on top of inside bar in google interactive bar chart

ci sono alcune altre domande senza risposta più di anno di età qui, sto sperando che qualcuno potrebbe aver trovato una soluzione o una soluzione ormai, è per questo che chiede ancora una volta questa domanda.

Google Visualization: Column Chart, simple question but can't find the answer

How to show values on the the top of columns Google Chart API

Puoi mostrarmi come ottenere ciò che voglio utilizzare How can I customize this Google Bar Chart??

risposta

17

Partenza di Andrew Gallant JSFiddle qui:

http://jsfiddle.net/asgallant/QjQNX/

Esso utilizza un trucco geniale di un grafico combinata per compiere ciò che penso che stai cercando.

google.load("visualization", "1", {packages: ["corechart"]}); 
google.setOnLoadCallback(drawChart); 

function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Name'); 
    data.addColumn('number', 'Value'); 
    data.addColumn({type: 'string', role: 'annotation'}); 

    data.addRows([ 
    ['Foo', 53, 'Foo text'], 
    ['Bar', 71, 'Bar text'], 
    ['Baz', 36, 'Baz text'], 
    ['Cad', 42, 'Cad text'], 
    ['Qud', 87, 'Qud text'], 
    ['Pif', 64, 'Pif text'] 
    ]); 

    var view = new google.visualization.DataView(data); 
    view.setColumns([0, 1, 1, 2]); 

    var chart = new google.visualization.ComboChart(document.getElementById('chart_div')); 

    chart.draw(view, { 
    height: 400, 
    width: 600, 
    series: { 
     0: { 
     type: 'bars' 
     }, 
     1: { 
     type: 'line', 
     color: 'grey', 
     lineWidth: 0, 
     pointSize: 0, 
     visibleInLegend: false 
     } 
    }, 
    vAxis: { 
     maxValue: 100 
    } 
    }); 
} 
+1

+1 Grazie per collegamento. Ho trovato un altro lavoro, basta usare la scala di registro per mostrare i valori dell'asse y 'vAxis: {logScale: true}' – Watt

+0

C'è un modo per fare in colori diversi tra diversi. ad esempio se è tra 40 e 80 rosso e se è 80 o superiore lo rende giallo? –

3

ho avuto alcune battute d'arresto con l'annotazione e la linea invisibile (per esempio, averlo visualizzato nel tooltip come un'altra serie).

Ho eseguito un hack su ComboChart (potrebbe funzionare con BarChart e ColumnChart e con un paio di modifiche) per inserire le etichette nell'SVG.

Partenza questo violino: http://jsfiddle.net/augustomen/FE2nh/

provata su Firefox 21, Chrome 27 e IE 9.

Problemi correlati