2015-03-20 1 views
3

Я создал визуализацию this и хотел бы использовать предопределенные фильтры в тексте объяснения. Я создал ссылку, где фильтр применяется на BarChart как так:Как установить кисти в диапазон фильтрации с помощью dc.js

<a href="javascript:filterAge([13,14,15])">Filter</a> 

Функция filterAge является:

function filterAge(filters) { 
    dc.filterAll(); 
    for (var i = 0; i < filters.length; i++) { 
    ageChart.filter(filters[i]); 
    } 
    dc.redrawAll(); 
} 

фильтр работает нормально, однако кисти в возрастной схеме не установлены соответствующим образом , Поэтому для пользователя трудно сказать, что именно было отфильтровано.

Я столкнулся с вопросом this, но не смог применить его к способу работы dc.js. Another вопрос кажется в том же направлении, но не хватает тщательного ответа.

+0

Я предполагаю, что ваш график имеет количественный, а не порядковый х масштаб - щетки работают совершенно по-разному в каждом конкретном случае в dc.js. Если бы это было по порядку, это должно сработать. Если это количественно, это ошибка, указанная выше. – Gordon

+0

Хмм, как же СО закрыть это как дубликат без предоставления ссылки? http://stackoverflow.com/a/29041518/676195 – Gordon

ответ

2

Поскольку у нас недостаточно рецензентов, чтобы получить вопросы, отмеченные как дубликаты, я расскажу об этом.

dc.js рассматривает фильтрацию совершенно по-разному для количественных масштабов, поэтому вы не можете использовать приведенный выше код, который предназначен для порядковых масштабов.

Попробуйте с помощью ranged filter object вместо:

<a href="javascript:filterAge(13,16)">Filter</a> 

function filterAge(low, high) { 
    dc.filterAll(); 
    ageChart.filter(dc.filters.RangedFilter(low, high)); 
    dc.redrawAll(); 
}