Как правило, это может быть достигнуто по крайней мере несколькими различными способами. Все зависит от ваших данных, которые вы не предоставили (я создал пример данных).
Кроме того, я приведу все примеры в jsFiddle (JavaScript), потому что быстрее объяснить что-либо таким образом с быстрым онлайн примером. Окончательный ответ будет содержать код R (возможно, с некоторым пользовательским JavaScript, если необходимо, но все будет воспроизводимо в R.
Прежде всего, ваше предположение, что вам нужно отдельная серия является неправильной и вызывает проблемы.Если вы хотите, чтобы маркеры на вашей линии были одинакового цвета, и вы хотите соединить их вместе по щелчку легенды, то вам не нужны отдельные серии - одна серия с включенными маркерами на некоторых очков достаточно , см. этот пример: https://jsfiddle.net/BlackLabel/s24rk9x7/ В этом случае данные R должны быть определены правильно.
Если вы не хотите сохранять это просто, как описано выше, вы можете хранить линии и маркеры как отдельные серии, как в исходном вопросе. В этом случае вы можете использовать свойство series.linkedTo , чтобы соединить ваши "точечные" серии с сериями линий (BTW в Highcharts нет чего-то вроде типа «точка» серии, это «разброс» * типа серии 1021 *. Еще одна причина, по которой ваш код неправильный и не работает, и вы получили unv ), но есть проблема с ним в Highcharter - не работает, похоже на ошибку и о ней следует сообщать в репозитории Highcharter GitHub.
Это версия JavaScript, которая отлично работает: https://jsfiddle.net/BlackLabel/3mtdfqLo/ В этом примере, если вы хотите сохранить маркеры и ряды линий в одном цвете, вы можете определить цвета вручную или написать собственный код (как я), который автоматически изменит цвет для вас. .
И это та же версия R, которая должна работать, но это не так:
library(highcharter)
highchart() %>%
hc_add_series(
data=list(4, 3, 5, 6, 2, 3)
) %>%
hc_add_series(
data=list(14, 13, 15, 16, 12, 13),
id="first"
) %>%
hc_add_series(
data=list(10, 8, 6, 2, 5, 12),
id="second"
) %>%
hc_add_series(
type="scatter",
linkedTo="first",
data=list(list(1, 3), list(2, 5))
) %>%
hc_add_series(
type="scatter",
linkedTo="second",
data=list(list(1, 13), list(2, 15), list(3, 16))
) %>%
hc_plotOptions(
line = list(marker=list(enabled=F))
)
Возможно, что-то не так с функцией hc_add_series
. В качестве обходного пути , вы можете написать все это как собственный JavaScript код, который (опять же) работает нормально:
library(highcharter)
highchart() %>%
hc_plotOptions(
line = list(marker=list(enabled=F))
) %>%
hc_chart(
events = list(load = JS("function() {
this.addSeries({
data: [4, 3, 5, 6, 2, 3],
id: 'first'
});
this.addSeries({
data: [14, 13, 15, 16, 12, 13],
id: 'second'
});
this.addSeries({
data: [10, 8, 6, 2, 5, 12]
});
this.addSeries({
type: 'scatter',
linkedTo: 'first',
data: [[1, 3], [2, 5]]
});
this.addSeries({
type: 'scatter',
linkedTo: 'second',
data: [[1, 13], [2, 15], [3, 16]]
});
}")))
Конечно, последние примеры не содержат функциональности, которая меняет цвет - вы можете скопировать его из jsFiddle выше.