在图例刻度中显示正确域值的问题
Issue with displaying correct domain values in legend tick
我正在使用 d3.interpolateViridis 处理连续颜色图例。我在显示图例刻度值时遇到问题。我想在图例中显示我的最小值(在一端)和最大值(在另一端)(域值)。我尝试更改刻度值但没有帮助。
这是我的代码片段:
//scale
var colorScale2 = d3.scaleSequential(d3.interpolateViridis).domain([0, 0.38]);
//other code
var legendscale = d3.scaleLinear()
.range([0, legendheight - margin.top - margin.bottom])
.domain(colorscale.domain());
// scale tick
var legendaxis = d3.axisRight()
.scale(legendscale)
.tickSize(16)
.ticks(2);
此外,我已经分享了 JS fiddle link,其中 tick 为 0.0 和 0.2(这应该是最大值:0.38)。
https://jsfiddle.net/shru90/e42vcLy0/30/
注意:我的最小值为 0,最大值为 0.38(可能因数据而异)
默认情况下,轴将刻度设置为漂亮的圆形值。如果您希望为特定值添加刻度线,则可以设置 tickValues:
d3.axisRight()
.scale(legendscale)
.tickSize(16)
.tickValues(legendscale.domain());
我正在使用 d3.interpolateViridis 处理连续颜色图例。我在显示图例刻度值时遇到问题。我想在图例中显示我的最小值(在一端)和最大值(在另一端)(域值)。我尝试更改刻度值但没有帮助。
这是我的代码片段:
//scale
var colorScale2 = d3.scaleSequential(d3.interpolateViridis).domain([0, 0.38]);
//other code
var legendscale = d3.scaleLinear()
.range([0, legendheight - margin.top - margin.bottom])
.domain(colorscale.domain());
// scale tick
var legendaxis = d3.axisRight()
.scale(legendscale)
.tickSize(16)
.ticks(2);
此外,我已经分享了 JS fiddle link,其中 tick 为 0.0 和 0.2(这应该是最大值:0.38)。
https://jsfiddle.net/shru90/e42vcLy0/30/
注意:我的最小值为 0,最大值为 0.38(可能因数据而异)
默认情况下,轴将刻度设置为漂亮的圆形值。如果您希望为特定值添加刻度线,则可以设置 tickValues:
d3.axisRight()
.scale(legendscale)
.tickSize(16)
.tickValues(legendscale.domain());