Javascript D3.js-如何在一个绘图中为记号标签使用不同的样式?

Javascript D3.js-如何在一个绘图中为记号标签使用不同的样式?,javascript,d3.js,Javascript,D3.js,我正在使用d3.js绘制数据。在x轴上,我有不同范围的时间 因此,勾号标签可以如下所示: 我想强调年份,所以我希望年份标签加粗,而月份则不会加粗 我还没有找到解决办法。有可能吗?如果是,如何操作?使用创建axis svg节点后。调用到axis组件,您可以返回并选择特定的文本节点以更改其样式 在本例中,我只是检查哪些axis节点解析为一个数字,这仅适用于年份值: axisNodes.selectAll('text').each(function() { if(+this.textConten

我正在使用d3.js绘制数据。在x轴上,我有不同范围的时间

因此,勾号标签可以如下所示:

我想强调年份,所以我希望年份标签加粗,而月份则不会加粗


我还没有找到解决办法。有可能吗?如果是,如何操作?

使用
创建axis svg节点后。调用
到axis组件,您可以返回并选择特定的文本节点以更改其样式

在本例中,我只是检查哪些axis节点解析为一个数字,这仅适用于年份值:

axisNodes.selectAll('text').each(function() {
  if(+this.textContent) {
    this.classList.add("year");
  }
});
然后“年”css类可以应用任何你想要的额外样式

//改编自http://bl.ocks.org/mbostock/4149176
var margin={顶部:250,右侧:40,底部:250,左侧:40},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.time.scale()
.domain([新日期(2012,0,1),新日期(2013,0,1)])
.范围([0,宽度]);
var xAxis=d3.svg.axis()
.比例尺(x);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
var axisNodes=svg.append(“g”)
.attr(“类”、“x轴”)
.attr(“转换”、“翻译(20,50)”)
.呼叫(xAxis);
axisNodes.selectAll('text')。每个(函数(){
如果(+此.textContent){
本.classList.add(“年”);
}
});
.axis文本{
字体:10px无衬线;
}
.轴线,
.轴路径{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}
.年{
填充:无;
笔画:黑色;
形状渲染:边缘清晰;
}