【问题标题】:rounded corners to a rectangle?圆角变成矩形?
【发布时间】:2018-03-29 20:50:18
【问题描述】:

目前我在 c3.js 中生成的图表的图例是颜色矩形,我想用圆圈来改变它。我该怎么做?

var chart = c3.generate({
  data: {
      columns: [
          ['data1', 30],
          ['data2', 120],
      ],
      type : 'donut',
      onclick: function (d, i) { console.log("onclick", d, i); },
      onmouseover: function (d, i) { console.log("onmouseover", d, i); },
      onmouseout: function (d, i) { console.log("onmouseout", d, i); },
      label:true,
  },
  donut: {
      title: "Iris Petal Width",
       label: {
       /*format: function(value, ratio, id)
       {
         return d3.format('')(value)
       },*/
       show: false
      }
  }
});

Plunker

【问题讨论】:

标签: javascript d3.js c3.js


【解决方案1】:

有一种方法(可怕?!)做你想做的事:

CSS 更改:

.c3-legend-item-tile {
  stroke-linecap: round;
}

JS 变化:

const legendTiles = document.getElementsByClassName('c3-legend-item-tile');
for (const tile of legendTiles) {
    const x1 = tile.getAttribute('x1');
    tile.setAttribute('x2', x1);
}

this Plunker

【讨论】:

  • 这是一个很好的解决方案,但您的答案中没有使用任何 D3。我没有自己写答案,而是使用 D3 结合您的解决方案做了一个 plunkr,看看(第 45-48 行):plnkr.co/edit/i8sdSP08o1LL0JWcM7Rc?p=preview。如果需要,请随时将其添加到您的答案中。此外,OP 可以使用x1x2 来更好地定位线条。
  • 哇,非常感谢。为什么它们看起来像素化?它看起来不像一个完美的圆圈? @GerardoFurtado
  • @yavg 在我看来,它们确实是一个完美的圆圈(使用 Chrome)。
  • @GerardoFurtado 是的,事实上在 Firefox 中它也不是一个完美的循环...... :(
  • @GerardoFurtado 在修改行的 d3.js 代码中添加一个带有“附加”的圆圈是个好主意吗?
猜你喜欢
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
相关资源
最近更新 更多