无法让 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);
让我知道进展如何,如果出现更多问题,我会更新我的答案以提供帮助。
我正在尝试使用 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);
让我知道进展如何,如果出现更多问题,我会更新我的答案以提供帮助。