javascript – D3如何将图像放在水平线文本旁边

前端之家收集整理的这篇文章主要介绍了javascript – D3如何将图像放在水平线文本旁边前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我创建了这个显示结果情绪值的D3图表.然而,我正在努力做的是在水平文本旁边放置一个图像.以JSFiddle为例,假设“结果2”低于20%. “结果2”文本的右侧会显示一个悲伤的面孔.然后,如果该值高于20%……将显示幸福的脸.是否有可能做到这一点?

JSFiddle:https://jsfiddle.net/sopjzwst/3/

我在图表下面创建了两个不同的面,如下所示:

logos-cartoon-logo-design-gHlQ6b-clipart.jpg" alt="Smiley face" height="42" width="42">

Sad face
最佳答案
您可以使用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/

猜你在找的CSS相关文章