Я разрабатываю тип d3 sunburst.Эмиссия маркировки d3 sunburst
Все нормально, это принимает конусную JSON правильно, но, когда я иду, чтобы маркировать путь посмотреть, что происходит:
Код следующее:
var width = 960,
height = 700,
radius = Math.min(width, height)/2;
var x = d3.scale.linear()
.range([0, 2 * Math.PI]);
var y = d3.scale.linear()
.range([0, radius]);
var hue = d3.scale.ordinal().range(["#feec76","#aec7e8","#ff00bf","#7f7f7f"]);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width/2 + "," + (height/2 + 10) + ")");
var partition = d3.layout.partition()
.value(function(d) { return d.size; });
var arc = d3.svg.arc()
.startAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x))); })
.endAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x + d.dx))); })
.innerRadius(function(d) { return Math.max(0, y(d.y)); })
.outerRadius(function(d) { return Math.max(0, y(d.y + d.dy)); });
d3.json("http://api.printoriente.com/treemap.php", function(error, root) {
var g = svg.selectAll("g")
.data(partition.nodes(root))
.enter().append("g");
var path = g.append("path")
.attr("d", arc)
.style("fill", function(d) { return hue((d.children ? d : d.parent).name); })
.on("click", click);
var text = g.append("text")
.attr("transform", function(d) { return "rotate(" + computeTextRotation(d) + ")"; })
.attr("x", function(d) { return y(d.y); })
.attr("dx", "6") // margin
.attr("dy", ".35em") // vertical-align
.text(function(d) { return d.name; });
И код поворота:
function computeTextRotation(d) {
return (x(d.x + d.dx/2) - Math.PI/2)/Math.PI * 180;
}
Этот скрипт работает для всех остальных d3, но я должен поместить эти цвета для каждого пути.
Где проблема?
С уважением.
ОБНОВЛЕНО: d3 Санберст с малым размером шрифта:
ОБНОВЛЕНО: Я хочу что-то вроде этого:
ОБНОВЛЕНО: Посмотрите внутренних меток:
Не уверен, что вы говорите. Вы хотите, чтобы текст был окрашен или это пробел в проблеме? –
Проблема между метками - проблема. Я говорю, что этот код работает в других d3 sunbursts, но не в моем. Игнорируйте это, моя проблема связана с ярлыками. – nandophillips
Взгляните на изображение и посмотрите на этикетки T_T – nandophillips