【问题标题】:Display custom labels on X-axis with Rickshaw JS library使用 Rickshaw JS 库在 X 轴上显示自定义标签
【发布时间】:2012-11-07 09:37:55
【问题描述】:

我有一个包含 {x: someValue, y: count} 对的数据集,其中 someValue 是一周中的某一天,格式为 (1..7),其中 1"Sunday"。 在 Ricskshaw 图表上,我想分别在 X 轴上显示 (Mon, Tue..etc)。我该怎么做?

目前我已经完成了:

var ticksTreatment = 'glow';
var xAxisQPerDay = new Rickshaw.Graph.Axis.Time( {
          graph: graphQPerDay,
          ticksTreatment: ticksTreatment
      } );
xAxisQPerDay.render();

但这当然给了我默认值 1s、2s、3s 等...

【问题讨论】:

    标签: javascript charts rickshaw


    【解决方案1】:

    这样的事情应该可以工作:

    var xAxisQPerDay = new Rickshaw.Graph.Axis.X({
        graph: graphQPerDay,
        tickFormat: function(x) {
            switch (x) {
                case 1: return 'Mon';
                case 2: return 'Tue';
                case 3: return 'Wed';
                case 4: return 'Thu';
                case 5: return 'Fri';
                case 6: return 'Sat';
                case 7: return 'Sun';
            }
        }
    });
    
    xAxisQPerDay.render();
    

    如果您在侧面构建了地图以缓存字段数据,则可以使用更动态的方法。

    var days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
    var xAxisQPerDay = new Rickshaw.Graph.Axis.X({
        graph: graphQPerDay,
        tickFormat: function(x) {
            return days[x];
        }
    });
    
    xAxisQPerDay.render();
    

    var days = { 0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri', 5: 'Sat', 6: 'Sun' };
    var xAxisQPerDay = new Rickshaw.Graph.Axis.X({
        graph: graphQPerDay,
        tickFormat: function(x) {
            return days[x];
        }
    });
    
    xAxisQPerDay.render();
    

    【讨论】:

    • 最好保留对'tickFormat'函数的引用,因为它可以被其他对象使用,例如HoverDetail.xFormatter
    猜你喜欢
    • 2014-10-02
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多