Javascript 使用D3的静态xAxis顺序
我正在尝试在muli条形图上设置x轴的起点和终点。我可以根据对象中的日期,按照收到的顺序绘制图表。如何对x轴进行重新排序,以便从特定月份开始,如五月 我输入d3的月份是两位数(01、02、03等)Javascript 使用D3的静态xAxis顺序,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,我正在尝试在muli条形图上设置x轴的起点和终点。我可以根据对象中的日期,按照收到的顺序绘制图表。如何对x轴进行重新排序,以便从特定月份开始,如五月 我输入d3的月份是两位数(01、02、03等) NVD3多条形图的x轴使用d3顺序刻度。有序标度的域(数据值)定义为类别数组;这些类别由轴按它们在阵列中的显示顺序使用 正如您所发现的,默认行为——如果没有显式设置域——是按照每个新类别在数据中出现的顺序添加它们。这就是NVD3的用途 要对x轴类别进行排序,有两种选择: 在将数据传递到图表之前对其进行
NVD3多条形图的x轴使用d3顺序刻度。有序标度的域(数据值)定义为类别数组;这些类别由轴按它们在阵列中的显示顺序使用 正如您所发现的,默认行为——如果没有显式设置域——是按照每个新类别在数据中出现的顺序添加它们。这就是NVD3的用途 要对x轴类别进行排序,有两种选择:
.xDomain(数组)
方法运行图表之前,显式设置x域xDomain
方法的数组应该按照所需的顺序具有所需的所有x值。如果您确切地知道类别是什么,您可以在程序中对其进行硬编码。一种更灵活的方法是从数据中生成它,方法是使用从每个数据对象中提取相关变量,然后使用以正确的顺序获取它们
(您可以在排序之前删除重复项----但这不是必需的。)您能提供一个您一直在编写的代码吗?我用代码更新了我的问题。图表根据键/值的排序方式绘制。我希望把它们整理好,从五月开始,而不是随机的。谢谢。我最终在服务器端修复了日期,现在它们是按时间顺序排列的,但我需要让数组从May开始。我给你打一针。谢谢在我的例子中,我在将日期传递到图表之前对日期进行了排序。虽然不是最好的,但它很有效。再次感谢。
var chart = nv.models.multiBarChart();
chart.xAxis
.tickFormat(d3.format(',f'));
chart.yAxis
.tickFormat(d3.format(',.1f'));
d3.select('#chart svg')
.datum(data())
.transition().duration(500)
.call(chart)
;
nv.utils.windowResize(chart.update);
return chart;
});