使用D3的静态xAxis顺序
Static xAxis order using D3
我正试图在muli条形图上设置x轴的起点和终点。我可以根据对象中的日期,按照收到的顺序绘制图表。如何重新排序x轴,使其以特定月份开始,如五月?
我输入d3的月份是2位(01、02、03等)
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;
});
NVD3多条形图的x轴使用d3序数刻度。有序标度的域(数据值)被定义为类别的数组;这些类别由轴按照它们在阵列中出现的顺序使用。
正如您所发现的,如果域没有明确设置,那么默认行为是按照每个新类别在数据中的显示顺序添加它。这就是NVD3所使用的。
要对x轴类别进行排序,您有两个选择:
-
在将数据传递到图表之前对其进行排序。这个答案描述了如何做到这一点。。
-
在使用NVD3图表对象的
.xDomain(array)
方法运行图表之前,明确设置x域。
传递给xDomain
方法的数组应该具有所需的所有x值,按所需顺序排列。如果你确切地知道类别是什么,你可以在你的程序中对其进行硬编码。一种更灵活的方法是从数据中生成它,方法是使用array.map
从每个数据对象中提取相关变量,然后使用array.sort
以正确的顺序获取它们。
(您可以在排序之前删除重复项--有关如何删除的示例,请参阅本问答--但这不是必需的。)
相关文章:
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 按顺序添加和删除类
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript-根据赋值顺序,按键合并对象数组
- Highchart:endOnTick没有完成xaxis的最大极限设置
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- querySelector/getElementByClassName嵌套项的顺序
- 以不同的顺序输出数据
- 重新排列HTML元素的顺序并更改内容
- 在Javascript中列出顺序子集元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Mongodb$in以与数组中相同的顺序获取结果
- 如何使用phonegap从安卓设备中提取联系人的字母顺序
- 在表单OnChange中交换数字顺序
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 预保存钩子:mongoose中回调的顺序如何
- 为什么生成器中的console.log会按这样的顺序出现
- 使用D3的静态xAxis顺序