我创建了这个显示结果情绪值的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">
答案 0 :(得分:3)
您可以使用ternary operator来定义要添加到条形旁边的图像的内容:
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"
});
因此,如果d.value
小于20(true),则会附加第一个链接,否则(false)会附加第二个链接。
这是您更新的小提琴:https://jsfiddle.net/c3k8c3a4/
编辑要显示刻度线旁边的图像,而不是条形图,请相应更改x
和y
。这是小提琴:https://jsfiddle.net/6uasj8hz/