使用d3绘图库人力车时,图表上会设置渲染器(区域,线条或条形图)。反正有没有一个包含多个系列的图表,其中一个系列被绘制为一条线而另一个系列被绘制为条形?
答案 0 :(得分:3)
答案 1 :(得分:1)
您现在可以在人力车上组合图表了!
渲染器类型称为“multi”。它是如何工作的,你给每个单独的系列它自己独特的渲染器,即
var graph = new Rickshaw.Graph({
element: el, width: 960, height: 500,
padding: { top: 0, right: 0, bottom: 0, left: 0 },
renderer: 'multi',
series: [
{
renderer: 'line',
data: [
{ x: 0, y: 40 },
{ x: 1, y: 49 }
]
},
{
renderer: 'bar',
data: [
{ x: 0, y: 30 },
{ x: 1, y: 60 }
]
},
]
});
答案 2 :(得分:0)
我找到了更多的解决方法而非解决方案,但无论如何它可能会有所帮助。
你可以在彼此之上绘制两个人力车图:
<div style="height: 0; overflow: visible;">
<div id="barChart" style="height: 300px;"></div>
</div>
<div style="height: 0; overflow: visible;">
<div id="lineChart" style="height: 300px;"></div>
</div>
现在绘制两个图表,每个图表div对Rickshaw.Graph()进行两次调用。请注意,您需要复制折线图中的最后一个点,否则您将无法在x轴上获得准确的匹配。
我知道这很难看,但它对简单的图表很有用。我不知道如果你用悬停效果或类似的方法尝试这种情况会发生什么。
如果有一个干净的解决方案,我也会感兴趣。
答案 3 :(得分:0)
在人力车中组合多个图表有一个pull request。显然这种方法仍需要一些改进,但代码似乎大部分都有效。
目前,您可以克隆feature branch,看看它是否符合您的目的。