【发布时间】:2020-06-09 19:07:38
【问题描述】:
我正在尝试创建一个简单的条形图,其中 X 轴是日期 scale 和 Y 是在某个日期发生的事件的总数。
此外,我正在尝试添加刷子和放大的功能 图表,以便有一个初始 X 轴数年,然后数月 最后几天,但我在尝试这样做时遇到了可怕的时间。
eventData.forEach(function(d) {
d.event_stat_data_ontime = $(d.event_stat_data_ontime).text();
//get rid of time portion
var tempDate = new Date(d.event_entry_date);
d.event_entry_date = new Date(tempDate.toDateString());
});
eventData = [ {event_entry_date: "Mon Feb 05 2020 23:13:39 GMT-0500 (Eastern Standard Time)", event_type: "Type 01"},
{event_entry_date: "Tue Feb 04 2020 00:14:40 GMT-0500 (Eastern Standard Time", event_type: "Type 02"},
{event_entry_date: "Thu Feb 20 2020 21:01:46 GMT-0500 (Eastern Standard Time)", event_type: "Type 01"},
{event_entry_date: "Fri Feb 21 2020 21:08:20 GMT-0500 (Eastern Standard Time)", event_type: "Type 01"},
{event_entry_date: "Mon Feb 03 2020 11:12:16 GMT-0500 (Eastern Standard Time)", event_type: "Type 03"} ];
eventData.forEach(function(d) {
d.event_entry_date = new Date(d.event_entry_date);
});
var ndx = crossfilter(eventData);
var dateDim = ndx.dimension( function(d) { return d.event_entry_date; } );
var dateGroup = dateDim.group().reduceCount( function(d) { return d.event_entry_date; });
var minDate = d3.timeMonth.offset(dateDim.bottom(1)[0].event_entry_date, -1);
var maxDate = d3.timeMonth.offset(dateDim.top(1)[0].event_entry_date, 1);
timeChart
.width( $('#dc-time-chart').parent().innerWidth() )
.transitionDuration(500)
.dimension(dateDim)
.group(dateGroup)
.elasticY(true)
.x(d3.scaleTime().domain([minDate, maxDate]))
.renderHorizontalGridLines(true)
【问题讨论】:
-
你说刷完后图表要放大到刷过的区域?这不是内置的,但应该是可能的。我猜 dc.js 用户大多使用range-focus chart 来达到类似的效果。
-
是的,我正在尝试做,但在任何地方都找不到示例。请有任何建议
标签: dc.js