Ich habe drei Optionsfelder, die den Wert auf der X-Achse für mein d3-Liniendiagramm ändern. Es ist mir gelungen, die Skalen zu ändern, jedoch nicht die X-Achsenbeschriftung. Überall wo ich hinschaue, sehe ich nur Infos für die Tickbezeichnungen, nicht die Achsenbezeichnungen (im Gif "Minute").Aktualisieren von D3-Achsenbeschriftungen
Ich habe erfolgreich in der Lage gewesen, zu aktualisieren und somit Neuskalierung die Achsen wie mit dem folgenden Code, aber kann nicht herausfinden, wie das Etikett zu ändern.
function updateGraph(graphData, timeScale){
yDomain = d3.extent(graphData, function(d){return Number(d.amt)});
switch(timeScale) {
case 'min':
xDomain = d3.extent(graphData, function(d){return Number(d.min)});
break;
case 'hour':
xDomain = d3.extent(graphData, function(d){return Number(d.hour)});
break;
case 'day':
xDomain = d3.extent(graphData, function(d){return Number(d.day)});
break;
default: break;
}
//Make the scale for the graphs dynamic
yScale.domain(yDomain);
xScale.domain(xDomain);
vis = d3.select('#visualisation').transition();
//add axes with proper scale, orientation, and position
var line = d3.svg.line()
.x(function(d){
switch(timeScale) {
case 'min':
return xScale(d.min);
break;
case 'hour':
return xScale(d.hour);
break;
case 'day':
return xScale(d.day);
break;
default: break;
}
})
.y(function(d){
return yScale(d.amt);
})
.interpolate('basis');
var xAxisLabel = function(){
switch(timeScale) {
case 'min':
return 'Minute';
break;
case 'hour':
return 'Hours';
break;
case 'day':
return 'Day';
break;
default: break;
}
}
vis.select('.line')
.duration(750)
.attr('d', line(graphData))
vis.select('.xaxis')
.duration(750)
.call(xAxis);
vis.select('.yaxis')
.duration(750)
.call(yAxis);
//Tried to hardcode with 'sugar' to no avail, would eventually like to use xAxisLabel declared above.
vis.select('.text')
.duration(750)
.text('sugar');
}
habe ich den Text, wenn ich zum ersten Mal die Grafik mit dem folgenden Code aus:
diesesvis.append('text')
.attr('text-anchor', 'middle') // this makes it easy to centre the text as the transform is applied to the anchor
.attr('transform', 'translate('+ (WIDTH/2) +','+(HEIGHT+(MARGINS.bottom/3))+')') // centre below axis
.text(xAxisLabel);
Was ist die 'var', die den Text erstellt hat? Sie müssen nur 'someVariable.text (" Ihr Text ")' '. Im Moment wählen Sie ein DOM-Element aus. –
Hey Gerardo, ich werde meine Frage entsprechend aktualisieren. –