Я использую Plotly для построения диаграммы рассеяния данных GWAS и хочу выделить определенную точку цветом, отличным от остальных данных. Я пытался несколько раз, но не смог найти это в Plotly. Любой совет был бы замечательным, пожалуйста.
входные данные выглядят так:
fig <- fig %>% add_trace(data=data_1, x = ~BP, y = ~log, name = "data", mode = "markers", type = "scatter",
y = c(117300000, 117900000), marker = list(size = 8, color = '#d62728'),
x = c(117558703), y = c(19.75696195), marker = list(color = 'blue',size = 8), type = "scatter")
fig
Одним из вариантов достижения желаемого результата может быть добавление индикаторной переменной к вашим данным, чтобы указать, какие точки вы хотите выделить. Затем эту переменную можно сопоставить с атрибутом color
. Затем цвета можно было установить с помощью атрибута colors
.
Используя минимальный воспроизводимый пример на основе mtcars
:
library(plotly)
data_1 <- mtcars
data_1$highlight <- row.names(data_1) %in% c("Honda Civic", "Porsche 914-2")
plot_ly() %>%
add_trace(
data = data_1, x = ~hp, y = ~mpg, color = ~highlight,
mode = "markers", type = "scatter",
marker = list(size = 8), colors = c("#d62728", "blue")
)
Хей Холли. № add_trace
из упаковки plotly
. См. фрагмент кода.
Спасибо, почему-то не работает. Переустановил и теперь работает! Спасибо за помощь! Это хорошо работает
Привет, Стефан, теперь мое изображение выглядит великолепно - спасибо. Быстрый вопрос по сюжету, если вы можете помочь? Есть ли способ также скрыть красные точки в приведенном выше примере? Просто чтобы синие выглядели еще более заметными? Это просто может сделать мой образ еще более сильным? Большое вам спасибо за вашу помощь!
Один из самых простых способов — создать переменную для идентификации этой конкретной точки. Здесь я создал образец данных и присвоил цветовую переменную, равную 1, для точки, которую я хочу закрасить другим цветом.
df = tibble(bp = round(rnorm(10,5,2),2),
log = round(rnorm(10,6,1.5),2))
df$colour <- as.factor(ifelse(df$bp == 4.41,1 ,0))
fig <- plot_ly(data = df, x = ~bp, y = ~log, group_by = ~colour,marker = list(color = factor(df$colour,labels=c("red","purple")))) %>%
add_trace(data = df, x = ~bp, y = ~log, mode = 'markers', type = 'scatter')
fig
Ссылка на сюжет созданный этим кодом
Спасибо за ваше объяснение. Я попытался воссоздать с моими данными. Но я получаю сообщение об ошибке, не могу найти функцию add_trace? Это через другой пакет? Спасибо!
Спасибо за объяснение, понятно. Я попытался воссоздать с моими данными, хотя. Но я получаю сообщение об ошибке, не могу найти функцию add_trace? Это через другой пакет? Спасибо! –