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

时间:2015-09-03 03:59:39

标签: javascript rickshaw dashing

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

从我读过的内容来看,人力车图应该可以通过使用“多人”来实现这一目标。渲染器,但我无法使渲染工作。

这是我发送的ruby Array数据对象,其格式设置使其更具可读性:

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}
            ]
        }
    ]

这是我打电话来显示图表并将数据发送到图表:

ruby作业中的

send_event:

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

1 个答案:

答案 0 :(得分:0)

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

具体来说,这些复杂的代码行: 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 Extend制作新副本:

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

让我知道它是怎么回事,如果出现进一步的问题,我会更新我的答案。