con algunas preguntas de aquí, pude agregar un detector de eventos a mi etiqueta del eje y. Sin embargo, me gustaría agregar un enlace diferente para cada etiqueta del eje y para que cuando haga clic en una etiqueta (en mi ejemplo, los números), se abra una nueva ventana. El enlace está almacenado en mi CSV, pero no he podido agregarlo con la función (d) {return d.url}. ¿Podría ser un problema que la etiqueta del eje y se cree con una matriz? ¿Alguien tiene una solución para esto? Aquí está mi código https://codepen.io/Lea12/pen/dyzKEOV
var y_axis = d3.scaleBand() .range([ height, 0 ]) .domain(data.map(function(d) { return d.activity; })) .padding(0.01); svg2.append("g") .call(d3.axisLeft(y_axis)) .attr("class","y_axis") .selectAll("text") .on("click", function(d){window.open(d.url,"_blank")})Mi csv se ve así:
grupo,actividad,valor,tarjeta,url
a,1,50,"tarjeta","www.google.de"
Solo la matriz de actividades está vinculada a su eje, pero puede usar el número de índice para obtener la URL de su matriz de datos.
svg2.append("g") .call(d3.axisLeft(y_axis).tickFormat(function(d,i) { return data[i].url })) .attr("class","y_axis") .selectAll("text") .on("click", function(d,i){ window.open(data[i].url,"_blank")});