Gar*_*ett 5 javascript css charts d3.js
我创建了这个显示结果情绪值的D3图表.然而,我正在努力做的是在水平文本旁边放置一个图像.以JSFiddle为例,假设"结果2"低于20%."结果2"文本的右侧会显示一个悲伤的面孔.然后,如果该值高于20%......将显示幸福的脸.是否有可能做到这一点?
JSFiddle: https ://jsfiddle.net/sopjzwst/3/
我在图表下面创建了两个不同的面,如下所示:
<img src="http://www.clipartkid.com/images/15/cartoons-cartoon-logos-cartoon-logo-design-gHlQ6b-clipart.jpg" alt="Smiley face" height="42" width="42">
<img src="http://www.clipartbest.com/cliparts/Rid/8EG/Rid8EGpi9.png" alt="Sad face" height="42" width="42">
Run Code Online (Sandbox Code Playgroud)
您可以使用三元运算符来定义要附加到条形图旁边的图像:
svg.selectAll(".images")
.data(data)
.enter()
.append("svg:image")
.attr("x", function(d) {return x(d.value) + 4; } )
.attr("y", function(d) { return y(d.sentiment) + 10; })
.attr("width", 42)
.attr("height", 42)
.attr("xlink:href", function(d){
return d.value < 20 ?
"http://www.clipartbest.com/cliparts/Rid/8EG/Rid8EGpi9.png" :
"http://www.clipartkid.com/images/15/cartoons-cartoon-logos-cartoon-logo-design-gHlQ6b-clipart.jpg"
});
Run Code Online (Sandbox Code Playgroud)
因此,如果d.value小于 20 (true),它会附加第一个链接,否则 (false) 它会附加第二个链接。
这是您更新的小提琴:https://jsfiddle.net/c3k8c3a4/
编辑要在刻度线旁边而不是条形图上显示图像,请相应地更改x和y。这是小提琴: https: //jsfiddle.net/6uasj8hz/