javascript - 在 .generate() 之后和 .load() 之前将参数传递给 c3js 工具提示

标签 javascript d3.js c3

我试图绘制出彼此没有任何关系的指标,因此我没有绘制实际值,而是计算了一组备用值,这些值在 0-1 之间缩放,如百分比.

例如:[1, 2, 5] => [0.2, 0.4, 1]

现在我有两组数据 - 原始版本和缩放版本。我已经将缩放版本绘制在图表上,但我希望工具提示向用户显示原始值。明白我的意思吗?

我查看了http://c3js.org/samples/tooltip_format.html ,这表明您可以在最初生成 C3 对象时将工具提示设置为函数。但我想在重新计算原始/缩放值并重新 load() 图表后更改工具提示。

在最初设置 myGraph = C3.generate( 后,我尝试显式更改 myGraph.tooltip.format.value = function (...) {...} {...}) 未成功。

有什么想法可以实现这一点,而不必每次都从头开始重新生成图表吗?

最佳答案

您需要覆盖internal.getTooltipContent

var data = ['data1', 30000, 20000, 10000, 40000, 15000, 250000];

// simple fake data
var fakeData = data.map(function (d, i) {
    return i ? (d / 100) : d;
})

var chart = c3.generate({
    data: {
        columns: [
            fakeData,
            ['data2', 100, 200, 100, 40, 150, 250]
        ],
    }
});


// do code to take over mars and plant potatoes


// save the original
var originalGetTooltipContent = chart.internal.getTooltipContent;
chart.internal.getTooltipContent = function (data, defaultTitleFormat, defaultValueFormat, color) {
    // we modified the first series, so let's change that alone back
    var originalValue = {
        id: data[0].id,
        index: data[0].index,
        name: data[0].name,
        // unfaked
        value: data[0].value * 100,
        x: data[0].x
    };

    var originalValues = data.map(function (d, i) {
        return i ? d : originalValue;
    })

    return originalGetTooltipContent.call(this, originalValues, defaultTitleFormat, defaultValueFormat, color)
}

我假设您已经对缩放的 y 轴标签做了一些事情?

<小时/>

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

关于javascript - 在 .generate() 之后和 .load() 之前将参数传递给 c3js 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619585/

相关文章:

javascript - 生成随机 alpha 变量并用它重复 ping 服务器

javascript - Jade 模板 - 动态调用 Mixin

javascript - d3.js 多种类型的盒子

jquery - 使用 c3 库 (JQuery) 更新圆环图

visual-studio-2010 - C#VS2010 : how to draw scrolling text using drawstring without flicker

javascript - 比较 JSON 返回的参数值

javascript - 谷歌地图、地理编码等

javascript - IBM Cognos Analytics 与 D3.js 条形图高度问题

javascript - 我可以为构成 D3 轴的文本和线条元素赋予唯一的类吗?

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