Javascript dc.js x-axis将不以月份显示刻度,而是显示小数
我正在使用dc.js构建一个条形图,并希望x轴列出一年中的12个月 到目前为止,我已经将第一个滴答声显示为一天中的某个时间(06 PM),所有后续滴答声显示为小数(千分之一) 我看到了一个类似的问题(),但答案涉及将毫秒转换为更大的单位,这在几个月内是不可能的(据我所知) 这是我的密码。提前谢谢你的帮助Javascript dc.js x-axis将不以月份显示刻度,而是显示小数,javascript,dc.js,crossfilter,Javascript,Dc.js,Crossfilter,我正在使用dc.js构建一个条形图,并希望x轴列出一年中的12个月 到目前为止,我已经将第一个滴答声显示为一天中的某个时间(06 PM),所有后续滴答声显示为小数(千分之一) 我看到了一个类似的问题(),但答案涉及将毫秒转换为更大的单位,这在几个月内是不可能的(据我所知) 这是我的密码。提前谢谢你的帮助 var parseDate = d3.time.format("%m/%d/%Y").parse; data.forEach(function(d) { d.date = parseD
var parseDate = d3.time.format("%m/%d/%Y").parse;
data.forEach(function(d) {
d.date = parseDate(d.weekStart);
d.month = d.date.getMonth();
});
var monthDim = ndx.dimension(function(d) {return d.month;});
var milesByMonth = monthDim.group().reduceSum(dc.pluck('miles'));
//set range for x-axis
var minDate = dateDim.bottom(1)[0].date;
var maxDate = dateDim.top(1)[0].date;
var barChart = dc.barChart("#myBarChart");
barChart
.width(800).height(200)
.margins({top: 10, right: 10, bottom: 20, left: 60})
.dimension(monthDim)
.group(milesByMonth)
.gap(40)
.transitionDuration(1500)
.yAxisLabel('Miles Per Month')
.renderHorizontalGridLines(true)
.x(d3.time.scale().domain([minDate,maxDate]))
//.x(d3.scale.ordinal())
//.xUnits(dc.units.ordinal)
//.x(d3.time.scale().domain([new Date(2012, 0, 1), new Date(2012, 11, 31)]))
//.round(d3.time.month.round)
.elasticX(true)
.elasticY(true);
您的维度键使用的是月份号,而x域使用的是日期。我建议始终使用日期作为维度键,但使用月份作为组键,这样它可以按月份分类,但不会丢失其余信息
var milesByMonth = dateDim.group(function(d) {return d.month;}).reduceSum(dc.pluck('miles'));
barChart.dimension(dateDim)
您应该能够使用轴.tickFormat()
和d3.time.format
来打印月份
差不多
var xAxis = chart.xAxis().tickFormat(d3.time. format('%B');
您可能还需要指定
chart.xUnits(d3.time.months)
我仍然不在那里。使用
var xAxis=barChart.xAxis().tickFormat(d3.time.format(“%B”)代码>添加在我的主要条形图参数之前,我在其中添加了.xUnits(d3.time.months)代码>它打印12个记号,全部标记为“十二月”。我还尝试了var xAxis=barChart.xAxis().tickFormat(d3.time.format('%B')).ticks(d3.time.months,12)代码>不会产生任何标签。图表不会使用示例数据呈现任何条形图、x轴记号或y轴记号。现在它只显示轴本身和y轴标签。一般来说,我对dc、d3和javascript都是新手,这几天来我一直在为此绞尽脑汁。我感谢你的耐心。