2012-02-13 11 views
6

Ho dati con valori X da 0 a 55. Mi piacerebbe vedere questi valori come testo personalizzato nelle etichette dei segni di graduazione. Idealmente, desidero specificare qualche callback, comejqPlot etichette tick personalizzate

function tickLabel(tickValue) { 
    return "This is " + tickValue; 
} 

È possibile?

risposta

17

ho trovato una soluzione.

xaxis: { 
    tickRenderer: $.jqplot.AxisTickRenderer, 
    tickOptions: { 
    formatter: function(format, value) { return "This is " + value; } 
    } 
} 
+1

Questa sembra la migliore risposta generica, ma ho trovato due casi d'angolo di cui essere a conoscenza: (1) potrebbe non funzionare con DateAxisRenderer; (2) Se è necessario produrre un'etichetta specifica per il contesto di un grafico su una pagina di più trame, un formattatore non avrà questo contesto. In entrambi questi casi non standard, suggerirei patch-patch jQuery.jqplot.DateTickFormatter o jQuery.jqplot.CanvasAxisTickRenderer.prototype.draw (tramite sostituzione o tramite il wrapping delle chiamate), a seconda di cosa è necessario. – sdupton

2

Usa qualcosa come:

var line1 = [['This is '.$value, $value], ...] 

E chiamare la trama come:

var plot1 = $.jqplot('chart1', [line1], { 
    title: 'Title of your plot', 
    series:[{renderer:$.jqplot.BarRenderer}], 
    axesDefaults: { 
     tickRenderer: $.jqplot.CanvasAxisTickRenderer , 
     tickOptions: { 
      angle: -30, 
      fontSize: '10pt' 
     } 
    }, 
    axes: { 
     xaxis: { 
     renderer: $.jqplot.CategoryAxisRenderer 
     } 
    } 
    }); 
Problemi correlati