Все еще работаем над этой визуализацией: https://ayyrickay.github.io/circulating-magazines/
У меня хорошие обновления, но меня раздражает одна вещь: когда кто-то нажимает на график, он сохраняет свое состояние. Например, если я нажимаю на проблему, он запускает этот код, чтобы обновить как состояние приложения, так и состояние перекрестного фильтра
(chart) => {
chart.selectAll('circle').on('click', (selected) => {
state.circulationClicked = true
const clearFilterButton = document.getElementById('clearIssueFilterButton')
clearFilterButton.classList.remove('hide')
clearFilterButton.addEventListener('click', lineChart.unClick)
renderIssueData(selected)
samplePeriodEnd.filter(d => {
const currentIssueDate = moment.utc(selected.x)
const periodEnding = moment.utc(d)
const periodStart = moment.utc({'year': periodEnding.get('year'), 'month': periodEnding.get('month') === 5 ? 0 : 6, 'day':1})
if (currentIssueDate >= periodStart && currentIssueDate <= periodEnding) {
Object.assign(state, {currentIssueDate, periodStart, periodEnding})
return currentIssueDate >= periodStart && currentIssueDate <= periodEnding
}
})
state.totalSalesByState = salesByState.all().reduce((a, b) => ({value: {sampled_total_sales: a.value.sampled_total_sales + b.value.sampled_total_sales}}))
us1Chart.colorDomain(generateScale(salesByState))
us1Chart.customUpdate()
})
}
Здесь много чего происходит, но я разочарован, потому что, похоже, потому что я переопределил щелчок по умолчанию, я выбил некоторые функции, которые я хотел - в частности, я хочу, чтобы круг, связанный с точкой данных чтобы остаться в том.
Использование renderDataPoints
метода не правильно, потому что мне нужен только круг, чтобы остаться на клике. Я также пытался создать метод moveToFront , чтобы вывести круг на передний план, но это не сработало для меня. Кажется, моя проблема в том, что я не могу найти круг и изменить его свойства в самом методе click. Я получаю данные, но не могу связать HTML / SVG, связанный с точкой данных, чтобы изменить их соответствующим образом.
Раздражительный вопрос, как всегда, но хотелось бы немного помочь разобраться с этим (и, возможно, получить его где-нибудь задокументировано?)