条形图和折线图在 DC.js 中不交互
bar chart and line chart are not interacting in dc.js
我想画一个条形图和折线图,两者都具有相同的维度和组。所以,我希望,当我刷折线图选择其中的时间范围时,条形图会更新。但是,这并没有发生。这是我的代码。任何帮助都会很大赞赏
<link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/dc/1.7.0/dc.css"/>
<script src="http://cdnjs.cloudflare.com/ajax/libs/dc/1.7.0/dc.min.js" charset="utf-8"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter/1.3.12/crossfilter.min.js" charset="utf-8"></script>
<div id="dc-freq-chart" style="height: 600px; width: 100%"/>
<div id="dc-time-chart" style="height: 600px; width: 100%"/>
<script type="text/javascript">
var freqChart = dc.barChart("#dc-freq-chart");
var timeChart = dc.lineChart("#dc-time-chart");
var controllerElement = document.querySelector('[ng-app=zeppelinWebApp]');
var scope = angular.element(controllerElement).scope().compiledScope;
var dateArray = scope.days;
var data = [];
for (var i =0; i < dateArray.length; i++)
{
data[i] = JSON.parse(dateArray[i])
}
var dateFormat = d3.time.format('%d/%m/%Y');
data.forEach(function (d) {
d.dd = dateFormat.parse(d.Date);
});
var ndx = crossfilter(data);
var dateDim = ndx.dimension(function(d){
return d3.time.day(d.dd);
})
var flights = dateDim.group();
// freqChart (barchart) properties
freqChart
.width(1000)
.height(500)
.margins({top: 20, left: 50, right: 10, bottom: 40})
.dimension(dateDim)
.transitionDuration(500)
.group(flights)
.gap(1)
.brushOn(false)
.title(function(d){
return d.data.key
+ "'nNumber of Flights on this day: " + d.data.value;
})
.x(d3.time.scale().domain(d3.extent(data, function(d) { return d3.time.day(d.dd); })))
.elasticY(true)
.elasticX(true)
.xAxisLabel("Day")
.yAxisLabel("Number of flights")
.xUnits(d3.time.days)
.xAxis().ticks(d3.time.days, 1);
// timechart (line chart) properties
timeChart
.width(1000)
.height(250)
.margins({top: 10, right: 30, bottom: 30, left: 50})
.dimension(dateDim)
.group(flights)
//.transitionDuration(500)
.brushOn(true)
.renderArea(true)
.elasticY(true)
.elasticX(true)
.x(d3.time.scale().domain(d3.extent(data, function(d) { return d3.time.day(d.dd); })))
.xAxisLabel("Day")
.yAxisLabel("Number of flights")
.xAxis().ticks(d3.time.days, 1);
dc.renderAll();
</script>
是的。我使用了范围图功能,这很有帮助。谢谢。
相关文章:
- 交互.js拖动的项目移动到顶部
- svg.js/svg平移缩放-双击交互
- 什么's是处理多个js文件之间交互的简单方法,同时避免溢出全局变量
- 为什么在node.js中,c++插件和javascript之间的交互非常昂贵
- 无法获取interact.js拖动&放弃交互以使用Boostrap元素
- 在Windows8(HTML/JS)中,有什么方法可以区分触摸和鼠标交互吗
- node.js没有使用child_process与child进行交互
- 与 rootScope 交互的指令在 Angular JS 中不起作用
- 正在处理.js - 当鼠标离开画布时继续交互
- 为什么css悬停与javascript(fullpage.js)交互,我该如何停止它
- 如何支持与 node.js 的 API 和 Web 界面数据交互
- 有没有办法确定 JS 事件是以编程方式还是通过实际交互触发的
- HTML5 + JS:跟踪用户交互
- 条形图和折线图在 DC.js 中不交互
- 聚合物可拖动与交互.js/阴影DOM选择器
- 使用交互.JS拖动
- 我是否正确使用了交互.js v1.1.3
- 交互.js设置拖到td的中心
- 如何触发交互.js事件/将所有可拖动对象恢复到默认位置(x : 0 , y : 0 )
- 我如何得到的要求为第三方库工作(交互.js)