#r #ggplot2 #plotly #scatter-plot #r-plotly
#r #ggplot2 #plotly #точечный график #r-plotly
Вопрос:
Я хочу создать интерактивный график, используя пакет plotly в R. Мне нужен точечный график, где каждая точка имеет «размер» в соответствии с их непрерывными значениями. На моем графике отображаются точки с размерами, но они не показывают мне, какое значение они имеют, когда я нахожу на них. Воспроизводимый код:
library(plotly)
plot_ly(data = mtcars,
x = ~ wt, y = ~ mpg, color = ~factor(cyl),
mode = "markers", type = "scatter", size = ~hp)
Warning messages:
1: `line.width` does not currently support multiple values.
2: `line.width` does not currently support multiple values.
3: `line.width` does not currently support multiple values.
Я хочу, чтобы, когда я перехожу к определенной точке, я хотел в интерактивном режиме увидеть, какое значение «hp» она имеет, кроме ее размера.
Ответ №1:
Вы можете добавить это с , text = ~hp
помощью in в окно plot_ly и отформатировать его, используя эту ссылку
например
library(plotly)
plot_ly(data = mtcars,
x = ~ wt, y = ~ mpg, color = ~factor(cyl),
mode = "markers", type = "scatter", size = ~hp,
text = ~hp,
hovertemplate = paste("Values: %{x}, %{y}<br>",
"Size: %{text}")
)
Комментарии:
1. это очень полезно! не могли бы вы объяснить, почему по умолчанию не отображаются числа? например, я хотел бы знать, почему, когда мы устанавливаем color = ~ factor (cyl), мы видим значения без какого-либо дополнительного кодирования, в отличие от того, когда мы хотим видеть значения size = ~ hp? Кроме того, я также хотел бы знать, что на самом деле происходит внутри функции paste(..)
2. Это настройки всплывающей подсказки по умолчанию для plotly. Вам нужно будет спросить их, почему они решили включить только x и y по умолчанию :). Я бы рекомендовал ознакомиться с примерами в ссылке, которую я прикрепил. Далее следует страница справки для hovertemplate: plotly.com/r/reference/#pie-hovertemplate это объясняет синтаксис, например
%{x}
, синтаксический код, который plotly использует для извлечения поля x в вызове plot_ly. Он основан на форматировании d3, поскольку plot_ly — это библиотека javascript, построенная поверх d3.js3. упс, я думаю, мой вопрос был неясен, извините! Я имел в виду, что установка color = ~factor (cyl) сделает значения cyl видимыми, когда мы выбираем точку, а также дает нам красивую легенду с указанием цветов. Однако, когда мы устанавливаем size = ~ hp, мы не получаем ни одного из них, и мне интересно, почему.