В скрипте вы добавляете g
к вашему svg
и присваиваете ему свою переменную svg
:
var svg = d3.select("#priceWithMilestones")
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
Похоже, getSVGString()
ожидает корневой узел, а неg
элемент.Вам, вероятно, следует изменить свой код так, чтобы svg
отражал корневой элемент svg, и создать другую переменную для хранения элемента g
, но для быстрого и грязного исправления вы можете изменить
var svgString = getSVGString(svg.node());
на
var svgString = getSVGString(d3.select('svg').node());
И следует сохранить.Обновленная скрипка: https://jsfiddle.net/c19664p3/8/
Редактировать: Что касается экспортированных стилей, похоже, что вы не можете ссылаться на селекторы вне svg при объявлении выбора.Кроме того, похоже, что он должен состоять только из идентификатора или класса.Смотрите мой другой ответ для более слабого экспортера правил CSS.
Итак, изменив это:
#priceWithMilestones .line {
fill: none;
stroke: #14da9e;
stroke-width: 2px;
}
на:
.line {
fill: none;
stroke: #14da9e;
stroke-width: 2px;
}
экспортирует стиль линии только для svg,Обновленная скрипка: https://jsfiddle.net/c19664p3/10/