要在热图图表上同时显示颜色和比例值,通常需要以下几个步骤:
热图(Heatmap)是一种数据可视化技术,通过颜色的变化来表示数据的大小。颜色越深通常表示数值越大,颜色越浅表示数值越小。
以下是一个使用JavaScript和D3.js库实现热图并显示比例值的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Heatmap with Values</title>
<script src="https://d3js.org/d3.v7.min.js"></script>
<style>
.cell {
fill: steelblue;
stroke: #fff;
}
.label {
font-size: 10px;
text-anchor: middle;
}
</style>
</head>
<body>
<svg width="600" height="400"></svg>
<script>
const data = [
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
];
const svg = d3.select("svg");
const width = +svg.attr("width");
const height = +svg.attr("height");
const cellSize = 50;
const colorScale = d3.scaleSequential(d3.interpolateViridis)
.domain([d3.min(data, d => d3.min(d)), d3.max(data, d => d3.max(d))]);
svg.selectAll(".cell")
.data(data)
.enter().append("g")
.attr("class", "cell")
.selectAll("rect")
.data(d => d)
.enter().append("rect")
.attr("x", (d, i) => i * cellSize)
.attr("y", (d, i, rows) => (rows.indexOf(d) * cellSize))
.attr("width", cellSize)
.attr("height", cellSize)
.attr("fill", d => colorScale(d));
svg.selectAll(".label")
.data(data.flat())
.enter().append("text")
.attr("class", "label")
.attr("x", (d, i) => (i % 3) * cellSize + cellSize / 2)
.attr("y", (d, i) => Math.floor(i / 3) * cellSize + cellSize / 2)
.text(d => d);
</script>
</body>
</html>
通过以上步骤和示例代码,你可以在热图图表上同时显示颜色和比例值。
领取专属 10元无门槛券
手把手带您无忧上云