Как изменить определенную точку на диаграмме рассеяния в Plotly другим цветом для остальных данных

Как изменить определенную точку на диаграмме рассеяния в Plotly другим цветом для остальных данных

Я использую Plotly для построения диаграммы рассеяния данных GWAS и хочу выделить определенную точку цветом, отличным от остальных данных. Я пытался несколько раз, но не смог найти это в Plotly. Любой совет был бы замечательным, пожалуйста.

входные данные выглядят так:

Как изменить определенную точку на диаграмме рассеяния в 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 
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
219
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Одним из вариантов достижения желаемого результата может быть добавление индикаторной переменной к вашим данным, чтобы указать, какие точки вы хотите выделить. Затем эту переменную можно сопоставить с атрибутом 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? Это через другой пакет? Спасибо! –

holly 22.11.2022 14:44

Хей Холли. № add_trace из упаковки plotly. См. фрагмент кода.

stefan 22.11.2022 14:47

Спасибо, почему-то не работает. Переустановил и теперь работает! Спасибо за помощь! Это хорошо работает

holly 22.11.2022 15:01

Привет, Стефан, теперь мое изображение выглядит великолепно - спасибо. Быстрый вопрос по сюжету, если вы можете помочь? Есть ли способ также скрыть красные точки в приведенном выше примере? Просто чтобы синие выглядели еще более заметными? Это просто может сделать мой образ еще более сильным? Большое вам спасибо за вашу помощь!

holly 22.11.2022 21:17
Ответ принят как подходящий

Один из самых простых способов — создать переменную для идентификации этой конкретной точки. Здесь я создал образец данных и присвоил цветовую переменную, равную 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? Это через другой пакет? Спасибо!

holly 22.11.2022 14:43

Другие вопросы по теме