NVD3:multiChart系列错误格式

时间:2016-03-31 09:48:10

标签: d3.js charts formatting nvd3.js

我正在使用NVD3 multiChart模型制作图表,我有4个系列,3个与左侧yAxis关联的栏和1个与右侧yAxis关联的栏。

3个柱子只有一个浮动值,其中该线具有一个perchentage。 一切正常,但工具提示中有一些东西,它没有正确格式化的日期(根本没有格式化)。

你知道我怎么能在底部格式化我的格式吗?

1458428400 -> 20-03-16

由于

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

  1. 定义一个将epoch转换为漂亮日期的函数。像这样:

    function epochToNiceDate(epoch) {
        var date = new Date(0);
        date.setUTCSeconds(epoch);
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
        return day + "-" + month + "-" + year;
    }
    
  2. 将工具提示的内容生成器功能传递给您的图表(假设您已启用 useInteractiveGuideline )。您可以浏览NVD3的源代码并复制/粘贴默认内容生成器,然后根据需要进行修改。我们以下面的例子为例:

    chart.interactiveLayer.tooltip.contentGenerator(function (d) {
        var tooltipTitle = epochToNiceDate(d.value);
        var tooltip = "";
    
        tooltip += "<table>";
        tooltip += "<thead>";
        tooltip += "<tr><td colspan='3'><strong class='x-value'>" + tooltipTitle + "</strong></td></tr>";
        tooltip += "</thead>";
        tooltip += "<tbody>"
    
        for(var i in d.series) {
            var currentSeries = d.series[i];
            var color = currentSeries.color;
            var key = currentSeries.key;
            var value = currentSeries.value;
    
            tooltip += "<tr>";
            tooltip += "   <td class='legend-color-guide'>";
            tooltip += "      <div style='background-color: " + color + ";'></div>";
            tooltip += "   </td>";
            tooltip += "   <td class='key'>" + key + "</td>";
            tooltip += "   <td class='value'>" + value + "</td>";
            tooltip += "</tr>";
        }
    
        tooltip += "</tbody>";
        tooltip += "</table>";
    
        return tooltip;
    });
    
  3. 您可以在此处看到它:https://jsfiddle.net/Luc93/qf4u5439/

    祝你好运!

答案 1 :(得分:1)

事实证明这是一个错误,如果其他人需要你可以使用的补丁,我已经完成了拉取请求:

https://github.com/novus/nvd3/issues/1406