D3 tickSizeOuter (0) для удаления конечных тиков НЕ работает

<< - оператор сдвига слева; это берет двоичное представление значения и перемещает все биты «n» влево (кроме «mod», см. «1»), заполняя нули нулями.

>> - оператор правого сдвига; это делает почти противоположное (перемещение вправо), за исключением знаковых значений (т. е. тех, которые могут быть отрицательными), он заполняет 1 с для отрицательных значений, а остальные нули.

1:

Оператор сдвига по существу является «mod» шириной данных. Int - 32 бита, поэтому сдвиг влево 33 (в Int32) точно такой же, как сдвиг влево 1. Вы не получаете все нули. A long - 64 бита, поэтому сдвиг влево 33 дает другой ответ (исходное время 2 ^ 33).

2:

Каждый сдвиг влево (в пределах данных ширина) одинакова (для целых чисел) как x2 - так что & lt; 4 равно x2x2x2x2 = x16.

Это простой двоичный файл:

0000000001 = 1

& lt; переходит в

0000000010 = 2

& lt; переходит в

0000000100 = 4

& lt; переходит в

0000001000 = 8
2
задан Kingamere 11 March 2019 в 14:34
поделиться

1 ответ

yAxis.tickSizeOuter (0) удаляет внешние отметки, что означает, что линия y является прямой линией, но не удаляет действительные отметки (например, 0-). Если вы что-то, что вы должны использовать что-то вроде:

  const tick_count = d3.selectAll("g.axis.axis--y .tick").size();
  d3.selectAll("g.axis.axis--y .tick")
    .each(function (d, i) {
      console.log(d,i)
      if ( i == 0 || i == tick_count-1) {
        this.remove();
      }
    });

Надеюсь, я правильно понимаю ваше недоразумение :)

0
ответ дан donatso 11 March 2019 в 14:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: