雄蕊图(Sunburst Chart)是一种可视化图表,用于展示层次结构数据。在这种图表中,每个环代表一个层次级别,从内到外逐渐展开。每个环的扇区表示该层次中的不同类别,扇区的大小通常与该类别的相对重要性或数量成比例。
雄蕊图通过环形的层次结构来展示数据,使得用户可以直观地看到数据的分布和层次关系。每个环的扇区可以有不同的颜色,以便于区分不同的类别。
雄蕊图通常分为以下几种类型:
雄蕊图适用于以下场景:
在雄蕊图中标记状态中心通常是指在图表的某个特定位置标记一个重要的状态或数据点。例如,在展示组织架构时,可以在某个关键部门的位置标记一个特殊的符号或颜色,以突出其重要性。
以下是一个使用D3.js库创建雄蕊图并标记状态中心的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sunburst Chart with Marked Center</title>
<script src="https://d3js.org/d3.v7.min.js"></script>
<style>
.marked {
fill: red;
}
</style>
</head>
<body>
<svg width="600" height="600"></svg>
<script>
const data = {
name: "Root",
children: [
{ name: "A", size: 10 },
{ name: "B", size: 20 },
{ name: "C", size: 30 }
]
};
const svg = d3.select("svg");
const width = +svg.attr("width");
const height = +svg.attr("height");
const radius = Math.min(width, height) / 2;
const color = d3.scaleOrdinal(d3.schemeCategory10);
const partition = d3.partition()
.size([2 * Math.PI, radius]);
const root = d3.hierarchy(data)
.sum(d => d.size);
partition(root);
const arc = d3.arc()
.startAngle(d => d.x0)
.endAngle(d => d.x1)
.padAngle(d => Math.min((d.x1 - d.x0) / 2, 0.005))
.padRadius(radius / 2)
.innerRadius(d => d.y0)
.outerRadius(d => d.y1 - 1);
const path = svg.append("g")
.attr("transform", `translate(${width / 2},${height / 2})`);
path.selectAll("path")
.data(root.descendants())
.enter().append("path")
.attr("display", d => d.depth ? null : "none")
.attr("d", arc)
.style("stroke", "#fff")
.style("fill", d => color((d.children ? d : d.parent).data.name));
// 标记状态中心
path.append("circle")
.attr("class", "marked")
.attr("cx", 0)
.attr("cy", 0)
.attr("r", 10);
</script>
</body>
</html>
通过上述代码,你可以在雄蕊图的中心位置添加一个红色的圆圈,以标记某个重要的状态或数据点。你可以根据实际需求调整标记的位置和样式。
领取专属 10元无门槛券
手把手带您无忧上云