javascript - nvd3折线图自动设置填充不透明度

标签 javascript css d3.js svg nvd3.js

我正在尝试使用以下代码使用 nvd3 创建折线图

nv.addGraph(function ()
{
    chart = nv.models.lineChart()
        .x(function(d) { return d[0]; })
        .y(function(d) { return d[1]; })
        .showXAxis(true)
        .showYAxis(true)
        .useInteractiveGuideline(true);
    chart.xAxis     //Chart x-axis settings
        .axisLabel('Time (ms)')
        .tickFormat(function(d) {
            var format = '%H:%M';
            d = new Date(d);
            return d3.time.format(format)(d);
        }).tickValues(null);


    d3.select('#macCountGraph svg')
        .datum(graphData)
        .call(chart);

    nv.utils.windowResize(chart.update);
    return chart;
});

上面的代码根据需要创建了图表,但它填充了图表,如下图所示

enter image description here

此外,它不显示网格线、x 轴、y 轴,并且鼠标悬停时不显示工具提示。

我查看了生成的 svg 并发现了这个

<g class=" nv-group nv-series-0" style="stroke-opacity: 1; stroke-width: 1.5; fill: rgb(31, 119, 180); stroke: rgb(31, 119, 180); fill-opacity: 0.5;">

以上元素的填充不透明度设置为 0.5。如果我在 firebug 中将其更改为 0,填充颜色将被删除。

尝试使用 JavaScript 来完成此操作,如下所示

d3.selectAll("svg .nv-groups > nv-group")
  .transition()
  .style("fill-opacity", 0);

但运气不佳。

关于如何解决这个问题有什么想法吗?

最佳答案

我在 d3 3.5.5nvd3 1.8.1 上遇到了同样的问题。在数据中设置 area 确实有效,因为它设置了图表区域,但与此处描述的问题分开(例如,如果您设置 area: "红色”,您最终将得到两个填充区域)。

通过设置 .nv-line 类元素的样式来修复。对于您的情况,请尝试以下操作:

d3.selectAll("svg .nv-line")
  .style("fill", "none"); // or whatever

关于javascript - nvd3折线图自动设置填充不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33824119/

相关文章:

javascript - Apache PDF 数字签名

javascript - 使用 AES Crypto-JS 进行加密和解密无法正常工作

css - Angular2 D3 - 未应用 CSS 样式

jquery - 菜单未显示在 html 页面中

javascript - IE9 中的 D3 : "Invalid argument" error using d3. js

javascript - jQuery 插件选项如何变得未定义?

php - PJAX 和 Firefox 后退按钮问题

css - 调整窗口大小时右 div 标签移动

javascript - 勾选文本/变量标签未在 d3 条形图中换行

javascript - 每次使用 D3 V3 或 JavaScript 单击按钮时使 svg 元素的颜色变暗