【问题标题】:Line Graph on top of MultiBar Graph NVD3, d3.jsMultiBar Graph NVD3、d3.js 之上的折线图
【发布时间】:2013-05-09 07:16:50
【问题描述】:

NVD3multi bar chartline plus bar chart。但似乎没有像多条加折线图这样的东西。

我有点玩折线加条形图,使其成为多条折线图。

下面是线加条形图接受数据的格式:

[
  {
    "key" : "Quantity",
    "bar": true,
    "values" : [[1136005200000, 127], [1138683600000, 271]]
  },
  {
    "key" : "Price",
    "values" : [[1136005200000, 71.89], [1138683600000, 75.51]]
  }
]

所以要在其中添加多个条,我尝试将数据更改为:

[
  {
    "key" : "Quantity",
    "bar": true,
    "values" : [[1136005200000, 127], [1138683600000, 271]]
  },
    {
    "key" : "Quantity1",
    "bar": true,
    "values" : [[1136005200000, 127], [1138683600000, 271]]
  },
  {
    "key" : "Price",
    "values" : [[1136005200000, 71.89], [1138683600000, 75.51]]
  }
]

这会在顶部显示两个标签 Quantity 和 Quantity1,但条形的总数仍然是两个(每个一个而不是每个两个)。

因为我得到了顶部的标签,我觉得这是可行的:)

这里是fiddle

解释问题陈述:假设有一家书店,里面有各种书籍。我想将一个月内一天内售出的最大和最小图书数量显示为条形图,并将该月的总销售额显示为折线图。所以对于x轴上的每个月,应该有两个条和一个点(用于折线图)。

【问题讨论】:

  • 你有什么问题?
  • 因此,在 nvd3 的线加条形图中,每个 x 值都有一个条形和一个点(通过连接这些形成线)。我想要的是每个 x 值两个栏和一个点。
  • 我认为你不能在 nvd3 中做到这一点。你最好在纯 D3 中尝试。

标签: javascript d3.js nvd3.js


【解决方案1】:

对于其他想知道的人来说,这个问题的真正答案是在 nv.models.multiChart 中将stacked 设置为true,或者基于nv.models.multiChart 创建另一个模型。

    bars1 = nv.models.multiBar().stacked(true).yScale(yScale1),
    bars2 = nv.models.multiBar().stacked(true).yScale(yScale2)

源代码中的行号:

https://github.com/novus/nvd3/blob/master/src/models/multiChart.js#L34

我正在像这样传递数据:

data.push({
                    type: "bar",
                    key: series.name,
                    values: seriesData,
                    yAxis: 1
                }
            )

【讨论】:

    【解决方案2】:

    查看 nvd3 包示例中的 multiChart.html 示例。此示例使用 multiChart 类型,每个 x 点显示 2 个线点、2 个区域点和 3 个条形,因此它也可以只显示 2 个条形和 1 个线点。

    【讨论】:

    • 这并没有回答他的问题。他说的是 MultiBargraphs 与折线图的结合
    猜你喜欢
    • 1970-01-01
    • 2012-12-18
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多