2016-01-04 2 views
1

Реферат:Как установить y-домен для dc js box plot? Он обрабатывает отрицательные значения?

Мои сомнения касаются графика графика ячеек dc.js. Я не могу успешно установить домен для оси y диаграммы. Также можно ли обработать негативные значения дескриптора окна?

В деталях:

Я получаю сообщение об ошибке на консоли:

Error: Invalid value for <circle> attribute cy="NaN"

Более тщательное изучение показало, что проблема с коробкой сюжета действительно. Соответствующий код приведен ниже:

alltwtssearchtrackdim = alltwtsndx.dimension(function (d) {return d.searchtrack;}); 

alltwtssearchtrackboxplotgroup = alltwtssearchtrackdim.group().reduce(
    function(p,v) { 
     p.splice(d3.bisectLeft(p, v.sentiment), 0,v.sentiment); 
     return p; 
    }, 
    function(p,v) { 
     p.splice(_.indexOf(p, v.sentiment, true), 1); 
     return p; 
    }, 
    function() { 
     return []; 
    } 
); 

boxplotsentiment 
.width(500) 
.height(250) 
.margins({top: 10, right: 50, bottom: 30, left: 30}) 
.y(d3.scale.linear().domain([-1.000, 1.000])) 
.dimension(alltwtssearchtrackdim) 
.group(alltwtssearchtrackboxplotgroup) 
.elasticY(true) 
.elasticX(true) 
boxplotsentiment.tickFormat(d3.format('.3f')); 

Теперь настроение может варьироваться от -1 до +1. Его настроение, связанное с твитами во время поиска, является порядковой переменной. Я проверил группу. Вычисляются массив значений и квартили.

Проблемы, которые я имею:

  1. не в состоянии установить у домена оси между -1 и +1
  2. Погрешность я получаю на консоли: Является ли это из-за отрицательных значений?

Просьба помочь

+0

Я думаю, что отрицательные значения должны быть точными. Примеры, которые я видел, использовали аксессуар .x(), а не y. Также может быть проблема с вашими данными. Если вы создаете рабочий пример (используя jsFiddle или аналогичный сайт), было бы легче отладить и помочь вам. –

+0

Я только что добавил ссылки на примеры скелета jsFiddle и bl.ocks на странице [Contributing] (https://github.com/dc-js/dc.js/blob/develop/CONTRIBUTING.md#issue-submission-guidlines) , поэтому легко скопировать и вставить код в ту систему, в которой вы более комфортно. Пожалуйста, дайте мне знать, если они будут полезны. – Gordon

+0

Позвольте мне попытаться воспроизвести это. Я не очень уверен в обмене данными Twitter. Я отправлю скрипку здесь, как только она будет готова. –

ответ

2

Не совсем ответ на ваш вопрос, но у меня были проблемы в установке оси у в той степени, значение при работе с небольшими числами. Выступает the y axis extent is too large on small numbers. В этих случаях, попробуйте установить

.elasticY(true) 
    .yAxisPadding('10%') 

или какой-либо другой здравомыслящий значение yAxisPadding.