【问题标题】:Multi line labels in c3 chartsc3图表中的多线标签
【发布时间】:2015-12-08 10:15:55
【问题描述】:

如何在c3图表中实现多行标签?

请参考-http://c3js.org/samples/axes_label.html

在上面的例子中,你可以看到“x label”标签显示为

x 标签

但我想把它分解成两个词,最后显示为

x 标签

这是 SVG,而不是普通的 html。怎么做?

【问题讨论】:

  • 没有一条评论?单一答案?哦,常见的...
  • 分成两个词是什么意思? x 标签已经是 2 个单词了。

标签: javascript d3.js multiline labels c3.js


【解决方案1】:

我已经把它分成tspan这样的两个DOM元素

var chart = c3.generate({
    data: {
        columns: [
            ['sample', 30, 200, 100, 400, 150, 250],
            ['sample2', 130, 300, 200, 500, 250, 350]
        ],
        axes: {
            sample2: 'y2'
        }
    },
    axis: {
        x: {
            label: 'x-label'
        },
        y: {
            label: 'Y Label'
        },
        y2: {
            show: true,
            label: 'Y2 Label'
        }
    }
});
var label = d3.select(".c3-axis-x-label");
var text = label.text();//this will give you the text
label.text("");//setting the label to be blank

label.append("tspan").text("hello ");//making a tspan and adding to x label DOM
label.append("tspan").text("World");//making a tspan and adding to x label text DOM

工作代码here

编辑

可以通过调整dx和dy属性来放置标签

label.append("tspan").text("hello ").attr("dx", -30);;//making a tspan and adding to x label DOM
label.append("tspan").text("World").attr("dy", 20).attr("dx", -25);//making a tspan and adding to x label text DOM

工作代码here

希望这会有所帮助!

【讨论】:

  • Hello 和 world 在同一行。我需要将它们放在 2 个单独的行中。
  • 我猜你可以用 CSS 设置样式
猜你喜欢
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多