Мы отображение временных рядов данных (использование вычислительного ресурса, отобранное ежечасно в течение нескольких месяцев) на гистограмме многоуровневого D3.js:Упростить данные в формате JSON временных рядов построены в D3.js области диаграммы
d3.json("/growth/instance_count_1month.json", function(data) {
data.forEach(function(d) {
d.datapoints = d.datapoints.map(
function(da) {
// NOTE i'm not sure why this needs to be multiplied by 1000
return {date: new Date(da[1] * 1000),
count: da[0]};
});
});
x.domain(d3.extent(data[0].datapoints, function(d) { return d.date; }));
y.domain([0,
Math.ceil(d3.max(data.map(function (d) {return d3.max(d.datapoints, function (d) { return d.count; });}))/100) * 100
]);
результат довольно Spiky на мой вкус:
есть простой способ упростить данные, либо с помощью D3 или другой легко доступной библиотеки? Я хочу уменьшить остроту, но также уменьшить объем данных, которые нужно графизировать, так как он выйдет из-под контроля.
У меня есть предпочтение делать это на уровне пользовательского интерфейса, а не прикасаясь к каротажным процедурам (даже если избыточные данные в формате JSON должны будут быть переданы.)
Ответ на ваш вопрос (фильтрация приходит на ум), но здесь очень хороший пример сглаживания данных временных рядов с использованием [Rickshaw] (http://code.shutterstock.com/rickshaw/examples/extensions.html) , Это открытый источник, построенный поверх D3. – FernOfTheAndes
Вы можете поиграть с [интерполяцией] (https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-line_interpolate) строки/области, которую вы используете в качестве запуска. –
процедуры регистрации? –