2015-04-06 1 views
1

Мы сталкиваемся с проблемой с линейной диаграммой библиотеки dc.Ограничить линейную диаграмму увеличить до часов в библиотеке dc-диаграмм

http://dc-js.github.io/dc.js/

Возьмем пример ссылки выше, где ежемесячный индекс Abs представляет собой линейный график. Когда вы увеличиваете масштаб, он достигает минут на X-оси, например 5.15, 5.30, 5.45 и т. Д.

Мы определили шкалу X-Axis, как показано ниже: Это комбинация дня, месяца, года и часа.

.x(d3.time.scale().domain([new Date(sdate.getFullYear(),sdate.getMonth(),sdate.getDate(),sdate.getHours()), new Date(edate.getFullYear(),edate.getMonth(),edate.getDate(),edate.getHours())])) // (startDate, endDate) 

В этом случае мы попытались ограничить масштабирование до часов двумя способами, но не работаем.

Подход 1:

.zoomExtent([0, 23]); 

подход 2:

.zoomExtent([new Date(sdate.getFullYear(),sdate.getMonth(),sdate.getDate(),sdate.getHours()), new Date(edate.getFullYear(),edate.getMonth(),edate.getDate(),edate.getHours())]); 

мы хотели бы этого увеличения функциональности ограничить UPTO часов, как 4 вечера, 5 вечера, 6 вечера и т.д., и не до минут.

Заранее спасибо.

ответ

1

Использование chart.zoomScale(), который используется для установки d3.zoom.scaleExtent()

параметр представляет собой массив из двух элементов, минимальное и максимальное масштабирование допускается. По умолчанию это [1, Infinity]

Определите максимальный коэффициент, по которому вы хотите, чтобы график масштабировался и устанавливался. Например. если вы хотите только увеличить 20x, установите:

chart.zoomScale([1, 20]); 

Масштабирование является мультипликативным фактором. То есть если в увеличенной диаграмме 20 дней, установка второго элемента массива на 20 позволит увеличить масштаб до 1 дня или установить его на 20 * 24, чтобы увеличить масштаб до 1 часа и т. д.

+0

У меня есть вопрос. Можете ли вы заглянуть в это? –

+0

Я уточнил выше. – Gordon

+0

Мы пробовали ваш подход, но это не сработало для нас. Однако мы попробовали .zoomScale ([1,12]), что привело к тому, что мы хотим. Спасибо за ваши усилия. вы можете обновить свой ответ, чтобы я мог отметить его как правильно –