酒窝.js使用日期范围过滤 X 轴
dimple.js filter x axis with date range
我正在研究酒窝js(d3(图表,并寻找使用日期范围过滤它。不久,我正在开发带有日期范围输入的图表,提交后形成我的酒窝.js图表将被刷新并显示所选日期范围的图表。
我正在使用 .tsv 文件生成报告图。 我的代码如下所示。
d3.tsv("data.tsv", function (data) {
myChart = new dimple.chart(svg, data);
myChart.setMargins("60px", "10px", "10px", "75px");
var x = myChart.addCategoryAxis("x", "Month");
x.addOrderRule("Date");
var y = myChart.addMeasureAxis("y", "Sales Value");
y.showGridlines = true;
y.tickFormat = ',.2f';
myChart.addSeries(null, dimple.plot.bar);
myChart.draw(1000);
});
帮我解决这个问题。提前谢谢。
恐怕你不能直接在酒窝里做到这一点,.js。
一种更好、更简单的方法是在每次提交表单时创建和筛选数据集,并再次呈现酒窝图。几天前,我曾从事过一个类似的项目,我必须根据用户设置的范围过滤我的酒窝图。
您可以将文件的内容放在表示文件的行和列的 2D 数组中,而不是直接将 .tsv 文件作为数据。我使用 java 完成了此操作,然后将此数组传递给我的 JavaScript 代码。
假设xydata[][]
是我们的数组,"月"列存储在行xydata[0][i]
中,"销售值"列存储在行xydata[1][i]
现在,每次提交表单时,您都需要创建数据集,并根据需要进行过滤。代码如下:
function createChart(range)
{
xydata=[["Jan","Feb","Mar","Apr","May"],[10,20,30,40,50]]; //Created data example
var data=[]; //Array for filtered data
var range="Apr"; //Passed from the form
for(var i=0;i<xydata[0].length;i++){
if(range<xydata[0][i]) //Filtering Condition.. Additional logic required here
data.push({
Months:xydata[0][i],
SalesValue:xydata[1][i]
}
);
}
//data now contains the filtered data (before April in this case)
myChart = new dimple.chart(svg, data);
//and then draw the chart accordingly.
};
注意:您将需要一些额外的逻辑来让编译器知道,例如,1 月 <4 月
我写了一个通用示例
相关文章:
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- 过滤日期范围 angularjs 时出错
- 根据范围过滤角度.js数组
- 酒窝.js使用日期范围过滤 X 轴
- angular - 过滤开始日期和结束日期在所选月份和年份范围内的所有对象
- 使用控制器中定义的范围进行 NG 过滤
- 对数组进行范围过滤和拼接
- 如何使用AngularJS过滤日期范围
- 如何在angularjs中按日期范围过滤数据
- 如何使用jQuery或JavaScript过滤掉一个范围以上的结果
- 在dc.js柱状图上的颜色问题,当过滤到一个狭窄的范围
- 基于年份范围的过滤对象
- 如何在javascript中按日期范围过滤json数据
- 为任何日期范围过滤JSON格式的数据
- Jquery过滤通过多个范围的数字
- 按日期范围过滤数据
- 如何按时间范围过滤ng-repeat数据
- AngularJS:重复并按数字范围过滤
- 按数字范围过滤,自定义过滤器 - AngularJS
- AngularJS日期通过两个输入过滤范围