并非所有的刻度线都显示在nvd3折线图中
我正在尝试创建折线图。并非所有的刻度线都显示在nvd3折线图中
指定ticks:7表示lineChart,但只有6个ticks出现。
这是数据和选项值
this.options = {
chart: {
type: 'lineChart',
showYAxis:false,
showLabels:true,
showLegend:false,
reduceXTicks: false,
margin : {
top: 20,
right: 20,
bottom: 40,
left:20
},
x: function(d){ return d.x; },
y: function(d){ return d.y; },
xAxis: {
tickFormat:function(d) {
return d3.time.format('%b %d')(new Date(d));
},
ticks:7
}
}
};
this.data=[
{
values: [
{x: new Date('2015-03-23'),y:10},
{x:new Date('2015-03-24'),y:20},
{x:new Date('2015-03-25'),y:5},
{x: new Date('2015-03-26'),y:10},
{x:new Date('2015-03-27'),y:15},
{x:new Date('2015-03-28'),y:20},
{x:new Date('2015-03-29'),y:40}
],
key: 'Cosine Wave',
color: '#d0021c',
area:true
}
]
见plunker - https://plnkr.co/edit/7zg62ezs730i40U0GTHy?p=preview
任何帮助,将不胜感激。
我发现的一个解决方法是您使用tickValues设置ticks。
var xAxis = d3.axisBottom(x).tickValues([1, 2, 3, 5, 8, 13, 21]);
https://github.com/d3/d3-axis/blob/master/README.md#axis_tickValues
或者,你可以通过蜱值的指令:
<nvd3-line-chart
data="graphData"
xAxisTickValues="xAxisTicks"
</nvd3-line-chart>
,然后在范围:
$scope.xAxisTicks = function(){
return [new Date('2013-12-31'), new Date('2014-1-1'), new Date('2014-1-2')];
}
还要注意这个“嘀论证会如果还没有设置刻度格式,仍然会传递给刻度的tickFormat函数“
不起作用 '不能绑定到'xAxisTickValues',因为它不是'nvd3''的已知属性 –
是不是这是一个吗? https://stackoverflow.com/questions/32321185/how-to-force-nvd3-to-display-the-equal-number-of-ticks-as-that-of-the-values-plo – Shnigi
嘿,你能请更新小提琴,会有很大的帮助,谢谢。 –
在猛击者中,我可以看到7个蜱虫。所以无论是现在修复还是其他的东西。我发现你的帖子是完全一样的问题。我正在使用Angular 1和Krispo nvd3,我只能看到4个刻度而不是8个。 – Shnigi
它只有6个,还没有解决。 –
我明白你的意思是工具提示滴答,这很好,但日期滴答显示不正确。至少改变滴答:8会显示更多的滴答,但是一些日期会增加一倍。 – Shnigi