无法让 Dashing 在同一个人力车图上显示条形图和线条

Can't get Dashing to display bar and line on same Rickshaw graph

我正在尝试使用 this widget 来显示 3 组数据。第一组应该显示为条形图,其余的可以在图表上显示为线条。

根据我的阅读,Rickshaw Graphs 应该能够通过使用 'multi' 渲染器来执行此操作,但我根本无法使该渲染器工作。

这是我要发送的 ruby 数组数据对象,经过格式化以使其更具可读性:

iterationData:
    [
        {
            :name=>"Delivered", 
            :renderer=>"bar", 
            :data=> [
                {:x=>1, :y=>0}, 
                {:x=>2, :y=>4}, 
                {:x=>3, :y=>4}, 
                {:x=>4, :y=>11}
            ]
        }, 
        {
            :name=>"Estimated", 
            :renderer=>"line", 
            :data=> [
                {:x=>1, :y=>2.7}, 
                {:x=>2, :y=>5.4}, 
                {:x=>3, :y=>8.10}, 
                {:x=>4, :y=>10.8}, 
                {:x=>5, :y=>13.5}, 
                {:x=>6, :y=>16.2}, 
                {:x=>7, :y=>18.9}, 
                {:x=>8, :y=>21.59},
                {:x=>9, :y=>24.29}, 
                {:x=>10, :y=>26.99}
            ]
        }, 
        {
            :name=>"Outlook", 
            :renderer=>"line", 
            :data=> [
                {:x=>1, :y=>2.75}, 
                {:x=>2, :y=>5.5}, 
                {:x=>3, :y=>8.25}, 
                {:x=>4, :y=>11.0}, 
                {:x=>5, :y=>13.75}, 
                {:x=>6, :y=>16.5}, 
                {:x=>7, :y=>19.25}, 
                {:x=>8, :y=>22.0}, 
                {:x=>9, :y=>24.75}, 
                {:x=>10, :y=>27.5}
            ]
        }
    ]

下面是我显示图形并将数据发送到图形的调用:

send_event 在 ruby 工作中:

send_event("#{projectID}-burnup-chart", {:series => iterationData})

dashboard.erb代码:

<div data-id="23405488441-burnup-chart" data-view="Rickshawgraph" style="background-color:#ff9618" data-legend=true data-unstack=true data-renderer="bar" data-color-scheme="compliment" data-max="40"></div>

这只显示一个带有橙色背景的空白小部件。该图根本没有呈现。谁能建议我如何实现这一目标?或者有没有人使用不同的小部件来创建工作燃尽图 like this 他们可能会建议?

我相信你试图做的事情是不可能的,因为这个小部件将参数从 Dashing 编组到 Rickshaw。

具体来说,这些复杂的代码行: https://gist.github.com/jwalton/6614023#file-rickshawgraph-coffee-L193-L253

我不确定如果你向人力车发送额外的数据会不会生气,但小部件的作者似乎非常担心发送错误。本质上,您属于这种情况: https://gist.github.com/jwalton/6614023#file-rickshawgraph-coffee-L237-L245

如果您向 else if 添加一行,您可能能够让它工作,如下所示:

  else if series?.data?
  # Rickshaw data.  Need to clone, otherwise we could end up with multiple graphs sharing
  # the same data, and Rickshaw really doesn't like that.
  answer = {
    renderer: series.renderer  # add your renderer
    name:     series.name
    data:     series.data
    color:    series.color
    stroke:   series.stroke
  }

或者更好的是,只需使用 jQuery 扩展来制作新副本:

answer = $.extend(true, {}, series);

让我知道进展如何,如果出现更多问题,我会更新我的答案以提供帮助。