C3: 仅x,y轴的整数

创建于 2014-10-15  ·  9评论  ·  资料来源: c3js/c3

如何使轴刻度线仅是整数?
qq 20141015141217

我尝试过的是使用tick选项:

tick: {
    format: function(x) {
        return (x == Math.floor(x)) ? x : "";
    }
}

这样可以使标签仅显示整数,但轴上的分割线仍然存在。
qq 20141015141829

有没有办法控制轴刻度?

question resolved maybe

最有用的评论

更好的版本:

    axis: {
        y: {
            tick: {
                format: function(x) { return x % 1 === 0 ? x : ''; }
            }
        }
    }

所有9条评论

在当前的开发版本(主版)上,您可以使用axis.y.values设置刻度列表。 例如

{
  axis: {
    y: {
      ticks: [1,2,3]
    }
  }
}

但这不能基于数据源是动态的,对吗?

您可以在数据加载后计算这些值,将其设置为chart.internal.config.axis_y_tick_values ,然后调用chart.flush()以应用新的轴值。

这个代码怎么样?

    axis: {
        y: {
            tick: {
                format: function (x) {
                    if (x != Math.floor(x)) {
                      var tick = d3.selectAll('.c3-axis-y g.tick').filter(function () {
                        var text = d3.select(this).select('text').text();
                        return +text === x;
                      }).style('opacity', 0);
                      return '';
                    }
                    return x;
                }
            }
        }
    }

看来已经解决了,所以请让我关闭。

FWIW,要求了解D3的内部知识并运行JS似乎很奇怪。 我在C3问题中经常看到这种模式:有人遇到了问题,而不是提供C3选项,而是使用d3来操纵底层SVG的5-30行JavaScript。 我认为,从长远来看,这将不利于C3的采用。

特别是对于此问题,“ axis.y.tick.integer_only”选项将具有不可思议的价值。 我很乐意为此提供对C3的扩展。 我在这里看到一个示例扩展。 有扩展指南可以指导我吗?

谢谢!

编辑:语法。

您可以在数据加载后计算这些值,将其设置为chart.internal.config.axis_y_tick_values,然后调用chart.flush()以应用新的轴值。

提到这一点,因为我今天也遇到了这个问题-进行flush()会弄乱数据更改的动画,并且添加延迟也会带来一些图形故障。 但是,调用load()之前chart.internal.config.axis_y_tick_values为适当的值非常有效。 也许这对某人会有所帮助:)。

更好的版本:

    axis: {
        y: {
            tick: {
                format: function(x) { return x % 1 === 0 ? x : ''; }
            }
        }
    }

谢谢nnabinh-劳累了。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

aishwaryak picture aishwaryak  ·  4评论

Saikat-Sinha picture Saikat-Sinha  ·  3评论

laurentdebricon picture laurentdebricon  ·  3评论

ivarkallejarv picture ivarkallejarv  ·  3评论

seubert picture seubert  ·  3评论