2016-07-08 3 views
1

Я заинтересован в том, чтобы изначально просто показывать точки из выбранного набора значений переменной. Так, в приведенном ниже примере, просто показывают значения команды «а», первоначально с «Ъ» в легенде закрашена-аут, но togglableКак инициировать графический график R с видимыми только некоторыми значениями

library(plotly) 
library(dplyr) 

df <- data.frame(year=(c(2000,2001,2001,2002)),team=c("a","b","a","b"),values=c(1,3,2,4),stringsAsFactors = FALSE) 

plot_ly(data=df, x=year,y=values,color=team,mode="markers") 

enter image description here

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

ответ

1

Простейшим, чтобы начать все следы по умолчанию выключена, и переключать их по отдельности, нажав на легенде

plot_ly(data=df, x=year,y=values,color=team,mode="markers", visible="legendonly") 

Если вы хотите начать с некоторых точек, уже видимых и других, вам нужно использовать две трассы, вторую - с visible="legendonly". Если вы сделаете это так, вам также нужно будет выбрать цвета вручную.

plot_ly(data=df[which(df$team=="a"),], x=year,y=values, 
     color=team, colors = "blue", mode="markers") %>% 
    add_trace(data=df[which(df$team=="b"),], x=year,y=values, color=team, 
     colors="green", mode="markers", visible="legendonly") 

Вы управляете осями и тиками, используя функцию layout. Чтобы поставить галочки только в единичных интервалах вы можете использовать этот

plot_ly(data=df[df$team=="a",], x=year,y=values,color=team, colors = "blue", mode="markers") %>% 
    add_trace(data=df[df$team=="b",], x=year,y=values, color=team, colors = "green", mode="markers", visible="legendonly") %>% 
    layout(xaxis = list(autotick = FALSE, tickmode="linear", tick0 =2000, dtick=1, range=c(1999.5,2003.5)), 
     yaxis = list(autotick = FALSE, tickmode="linear", tick0 =0, dtick=1, range=c(0,5))) 

Полное описание всех опций в plotly API можно найти на https://plot.ly/r/reference/

+0

Большое спасибо за ответ на оба вопроса. я только что отправил редактирование, так как ваш окончательный код не указал data.frame в скобке. Я хочу, чтобы команда df $, а не команда – pssguy