javascript - c3js - D3js - 在简单的条形图中自定义标签

标签 javascript d3.js graph charts c3

可能提供一些上下文的最佳方式是显示代码:

http://jsfiddle.net/ron_camaron/baa0q55j/12/

var arrayOfDates = ['Jun 2015', 'May 2015', 'Mar 2015', 'Feb 2015', 'Jan 2015', 'Dec 2014'];
var arrayOfData = [7.25, 10.001, 10, 8.39, 10.002, 6.76]
var cautionColor = '#AB2522';
var bronzeColor = '#8C7853';
var silverColor = '#CCCCCC';
var goldColor = '#FFCC00';
var neutralColor = "#ffffff";

var chart = c3.generate({
bindto: '#divForGraph_1',
size: {
    height: 203,
    width: 380
},
data: {
    columns: [
        ['period'].concat(arrayOfData)
    ]
    ,
    types: {
        period: 'bar'
    }
    ,
    labels: true
    ,
    names: {
        period: 'Scoring Table'
    }
    ,
    color: function (color, d) {
        if (d.value < 4) {
            return cautionColor;
        } else if (d.value < 7) {
            return bronzeColor;
        } else if (d.value < 10) {
            return silverColor;
        } else if (d.value > 10 && d.value < 10.001) {
            return neutralColor;
        } else if (d.value >= 10.001) {
            return neutralColor;
        }

        return goldColor;
    }
    ,
    axis: {
        y: {
            label: {
                text: 'Scores',
                position: 'inner-middle'
            }
        },
        x: {
            type: 'timeseries',
            tick: {
                fit: true
            }
        }
    }
}
,
axis: {
 x:{
     type: 'category',
     categories: arrayOfDates
 }
}
});

chart.axis.max({
y: 10.002
});
chart.axis.min({
y: 0
});

在那个条形图中,有一些“特殊”值。我正在寻找一种自定义这些值的方法,如下所示:

  • 10.001 = "不适用"
  • 10.002 = "不适用"

y 轴上从 0 到 10 的其余值应保持原样。

另一个要求是 Y 轴只能显示 0 到 10 之间的值。

用 jQuery 修改 DOM 可能是一个解决方案,但它有点 hacking,我想正确使用 API 来获得结果。

感谢任何帮助!

最佳答案

你可以为你的数据标签添加一个format方法,就像这样

...
labels: {
    format: function (v, id, i, j) {
        if (v == 10.001)
            return "N/S";
        else if (v == 10.002)
            return "N/A";
        else
            return v;
    }
}
...

参见 http://c3js.org/reference.html#data-labels-format


fiddle - http://jsfiddle.net/duc8sLmo/

关于javascript - c3js - D3js - 在简单的条形图中自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189380/

相关文章:

javascript - node.js - 将不同数据发送到不同客户端的良好实现是什么?

javascript - 使用 d3.js 将鼠标 svg 转换为极坐标图坐标

graph - Grafana:在条形图上显示静态线

Javascript Image() 对象有时错误地将高度和宽度设置为 0

javascript - 为什么音频不能在 javascript 中播放

javascript - 将错误消息传递给 jQuery 文件上传

d3.js - 欧洲的 D3 map 投影,如 Albert USA

javascript - D3 绑定(bind)文本和 SVG

r - R 中幂律分布的拟合优度检验

javascript - 多边无向图的循环枚举