【问题标题】:D3 How to place image next to horizontal line textD3 如何将图像放置在水平线文本旁边
【发布时间】:2017-03-23 08:07:17
【问题描述】:

我创建了这个显示结果情绪值的 D3 图表。然而,我正在努力做的是在水平文本旁边放置一个图像。以 JSFiddle 为例,假设“结果 2”低于 20%。 “结果 2”文本的右侧会显示一张悲伤的脸。然后,如果该值高于 20%... 将显示一张快乐的脸。可以这样做吗?

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

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

<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">

【问题讨论】:

    标签: javascript css d3.js charts


    【解决方案1】:

    您可以使用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/

    编辑要在记号旁边而不是条形旁边显示图像,请相应地更改xy。这是小提琴:https://jsfiddle.net/6uasj8hz/

    【讨论】:

    • 你好 Gerardo,这很好,但我如何将它放在文本旁边?例如在“结果 1”和“结果 2”文本的右侧,而不是在图表本身中
    • “文本”是指“记号”。刻度的右边没有空格!
    • 勾选文本旁边?所以它会去'Result 1 Image tick'
    • 这可能吗?
    猜你喜欢
    • 2022-08-18
    • 2022-01-08
    • 1970-01-01
    • 2016-12-22
    • 2016-01-06
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多