【问题标题】:Second series not displaying in Highcharts第二系列未在 Highcharts 中显示
【发布时间】:2017-03-16 10:41:18
【问题描述】:

我正在尝试创建一个图表来显示系统的性能。我的问题是,由于某种原因,Higcharts 不会承认我有多个系列。第一个系列显示完美,但是第二个却看不到。 我正在使用 Django 1.8 循环字典中的数据。

我的系列代码:

series: [
    {% for ID, run in attDict.items|sort %}
    {
        yAxis: 0,
        id: "Run" + {{forloop.counter}},
        name: "RunID " + {{ID}},
        color: getLineColor({{ID}}),
        data: {{run}},
        marker: {
            fillColor: getFillColor({{forloop.counter}}),
        },
        visible: false
        },
    {% endfor %}

    {% for key, task in TaskE.items|sort %}
    {
        yAxis: 1,
        id: "during",
        linkedTo: "Run" + {{forloop.counter}},
        name: "Duringtask for run " + {{key}}
        type: 'area',
        color: '#12e000',
        fillOpacity: 0.3,
        data: {{task}},
        visible: fasle
        }{% if forloop.last %}{% else %},{% endif %}
    {% endfor %}
    ]

输出如下所示:

series: [
    {
        yAxis: 0,
        id: "Run" + 1,
        name: "RunID " + 250,
        color: getLineColor(250),
        data: [0, 0, 0, 0, 0, 0, 6, 33, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        marker: {
            fillColor: getFillColor(1),
        },
        visible: false
    },

    {
        yAxis: 0,
        id: "Run" + 2,
        name: "RunID " + 256,
        color: getLineColor(256),
        data: [0, 0, 0, 1, 0, 0, 0, 0],
        marker: {
            fillColor: getFillColor(2),
        },
        visible: false
    },

    {
        yAxis: 0,
        id: "Run" + 3,
        name: "RunID " + 257,
        color: getLineColor(257),
        data: [0, 0, 0, 1, 0, 0, 0, 0],
        marker: {
            fillColor: getFillColor(3),
        },
        visible: false
    },

    {
        yAxis: 0,
        id: "Run" + 4,
        name: "RunID " + 265,
        color: getLineColor(265),
        data: [83, 0, 101, 0, 0, 96, 0],
        marker: {
            fillColor: getFillColor(4),
        },
        visible: false
    },

    {
        yAxis: 0,
        id: "Run" + 5,
        name: "RunID " + 295,
        color: getLineColor(295),
        data: [14, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 37, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 3, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        marker: {
            fillColor: getFillColor(5),
        },
        visible: false
    },

    {
        yAxis: 0,
        id: "Run" + 6,
        name: "RunID " + 296,
        color: getLineColor(296),
        data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 0, 28, 15],
        marker: {
            fillColor: getFillColor(6),
        },
        visible: false
    },
]

【问题讨论】:

  • 你为什么要设置可见:系列为假?,我很惊讶它显示了任何系列
  • 可见设置为 false 仅在首次加载图表时隐藏系列。可见与否,该系列应显示在可以打开或关闭的图例中api.highcharts.com/highcharts/plotOptions.series.visible
  • 您的问题不可重现 - 没有 getFillColor/getLineColor 的配置可以正常工作。你可以调整小提琴jsfiddle.net/tru0psqL/1 - 你可以看到系列被隐藏并且可以切换它们的可见性。
  • @morganfree 抱歉,我似乎不太清楚。第一个循环中的所有数据都正确显示,就像小提琴中的情况一样。这是第二个循环,用于显示不会出现的真或假(1 或 0)值。第一个循环有效。

标签: javascript python django highcharts


【解决方案1】:

您通过以下方式明确告诉图表不要在图例中显示系列:

linkedTo: "Run" + {{forloop.counter}}

当两个系列链接时,只有第一个出现在图例中。 切换 this 的可见性也会切换链接的系列。

参考:

从第二个循环中删除 linkedTo 属性,它应该可以正常工作。

【讨论】:

  • 尝试并失败。 linkedTo 有一个目的。我用它来显示任务何时运行。我想做的是与链接的系列一起显示跑步。因此,当您显示运行时,还会显示任务期间的信息。我在另一个非常相似的图表中使用了这种方法。问题是没有显示来自第二个循环的数据。
  • 1) 以何种方式“尝试并失败”?请明确点。 2)linkedTo 将从图例中隐藏系列,因此无论它是否有目的,它都会导致您描述的行为,并且它的意思是。
  • 回到原始帖子,您似乎显示了第一个循环的输出,而不是第二个循环的输出。第二个循环根本没有输出任何东西吗?如果是这样的话,那我们根本不需要看图表代码。如果没有,请向我们展示输出。
  • 我删除了linkedTo 属性,没有任何改变。 linkedTo 只是意味着如果我想查看第二个循环中的数据,我需要单击一个图例项来显示运行。然后,linkedTo 属性理论上也应该显示链接的数据。如果您查看上面的代码,您可以看到在输出中,根本没有来自第二个循环的系列的迹象。上面显示的是 Series[ ] 的整个 sn-p
  • 好的,所以这是一个与“图表不显示系列”完全不同的问题。问题似乎是循环不输出任何东西。您需要检查循环的输入,确保它们包含预期的内容,并与图表分开测试循环以找出它没有输出任何内容的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多