Debito della divulgazione - Sono terribile su javascript, ma sto cercando di imparare!Nuovo su nvD3 - come posso far apparire i timestamp unix come date sull'asse x?
Ho un array con alcune voci come queste in esso:
[1349,0136 milioni] => 232
La chiave è un timestamp UNIX, il valore è il $ in vendite da quel giorno. Attualmente sto graficamente su un grafico multibar, che funziona alla grande.
Il problema è il mio asse x, che è attualmente definito così:
chart.xAxis
.tickFormat(d3.format(',f'));
emette i timestamp unix come int dritto contro le etichette asse xe presso descrizione. Voglio provare a farlo uscire come D-M-Y o un simile indicatore di data leggibile dall'uomo.
Il più vicino che ho trovato è questo pezzo di codice:
chart.xAxis.tickFormat(function(d) {
var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
return d3.time.format('%x')(new Date(dx))
});
Ma Ho difficoltà a capire quello che sta facendo e non può attuare il mio particolare grafico. Il codice attuale è simile al seguente:
nv.addGraph(function() {
var chart = nv.models.multiBarChart()
.stacked(true)
chart.xAxis
.tickFormat(d3.format(',f'));
chart.yAxis
.tickFormat(function(d) { return '$' + d3.format(',f')(d) });
d3.select('#chart1 svg')
.datum(test_data2)
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
Qualcuno potrebbe spiegare come farlo funzionare e, cosa più importante, perché? Apprezzo qualsiasi guida!
Grazie per il suggerimento. Le date (come memorizzate nel db SQL) sono già in un formato leggibile (YYYY/MM/DD) già, ma le sto convertendo con strtotime (funzione PHP) quando le estraggo dal db. So che questo sembra contro-intuitivo, ma sono convinto che l'assegnazione del valore reale debba avvenire in unix stamp, al fine di spaziarli appropriatamente lungo l'asse. Ad ogni modo - dovrebbe già essere in s piuttosto che in ms. – mcl