У меня есть d3 график его иерархия выглядит следующим образом:Выберите часть d3 диаграммы
svg
g <- this is row labels
g <- this is col labels
g <- this is actual chart
Моя проблема, я хочу, чтобы преобразовать реальную диаграмму часть (третий <g>
элемент) в файл PNG без строки и col. Так что в принципе мне нужен d3.selection может выбрать элемент <svg>
и его третий элемент <g>
, первые 2 <g>
лишены выбора, поэтому, когда этот выбор преобразуется в строку XML и нарисован на <canvas>
, нет ярлыков.
В настоящее время я добиваюсь делая обработку текста через XML:
var source = (new XMLSerializer()).serializeToString(d3.select("svg").node());
var xmldoc = $.parseXML(source);
$(xmldoc).find("g:eq(1), g:eq(2)").remove();
var src2 = (new XMLSerializer()).serializeToString(xmldoc);
, но я хочу знать, если есть более удобные и элегантные пути. Благодарю.
Почему бы не дать значения элементов класса G, а затем выбрать по классам. Или уникальные идентификаторы и выберите по id. –