2014-09-29 3 views
2

저는 R의 ggplot을 사용하여 정적 플롯을 만들고이를 plot.ly에 전달하여 대화 형 플롯을 만듭니다. 색상에 대한 범주 형 변수와 크기에 대한 숫자 형 변수를 투영하려고합니다. 완벽하게 작동하는 R의 [아이리스] 데이터 - 그런 : 이제R의 2 + 범례를 plotly/plot.ly에 사용합니다.

testplot <- ggplot(iris, aes(Sepal.Length, Sepal.Width, color=Species, size=Petal.Length)) + geom_point() 
py$ggplotly(testplot) 

https://plot.ly/~SyTpp/11/sepalwidth-vs-sepallength/

, 나는 내 자신의 데이터 집합, A는 ...

> a 
     Country OR_Edu OR_Illn total num 
     Peru 1.75 1.67 25367 10 
    Philippines 1.33 0.43 33543 1 
     Rwanda 0.29 4.00 6443 2 
     Senegal 5.00 1.60 32743 3 
    Sri Lanka 12.00 6.33 21743 4 
     Sudan 17.00 0.86 27227 5 
    Tanzania 0.57 0.71 24312 6 
     Uganda 13.00 0.60 35466 7 
     Vietnam 1.62 1.50 34639 8 
     Zambia 0.86 1.00 16735 9 
    Zimbabwe 1.25 1.00 33349 10 
> summary(a) 
     Country  OR_Edu   OR_Illn   total   num   
Peru  :1 Min. : 0.290 Min. :0.430 Min. : 6443 Min. : 1.000 
Philippines:1 1st Qu.: 1.055 1st Qu.:0.785 1st Qu.:23028 1st Qu.: 3.500 
Rwanda  :1 Median : 1.620 Median :1.000 Median :27227 Median : 6.000 
Senegal :1 Mean : 4.970 Mean :1.791 Mean :26506 Mean : 5.909 
Sri Lanka :1 3rd Qu.: 8.500 3rd Qu.:1.635 3rd Qu.:33446 3rd Qu.: 8.500 
Sudan  :1 Max. :17.000 Max. :6.330 Max. :35466 Max. :10.000 
(Other) :5                     

내가만을 사용하는 경우가 국가를 범주 형 변수로 사용하면 작동합니다.

testplot <- ggplot(a, aes(OR_Edu, OR_Illn, color=Country)) + geom_point() 
py$ggplotly(testplot) 

그러나 '전체'를 th의 크기에 매핑하려고하면 전자 마커

testplot <- ggplot(a, aes(OR_Edu, OR_Illn, color=Country, size=total)) + geom_point() 
py$ggplotly(testplot) 

분명히 숫자 값인데도 불구하고이 오류가 발생합니다.

L의 $ 마커 $ 크기 오류 * marker.size.mult : 이항 연산자

문제는 무엇인가에 숫자가 아닌 인수? 어떤 아이디어?

그 외에도 (별개의 질문에서 질문 할 필요가 있습니다) : 어떻게 호버에 나타나는 작은 팝업 상자를 사용자 정의 할 수 있습니까?

고맙습니다.

답변

2

나는 이메일을 통해 답장을했지만 모든 사람들을 위해 여기에 올릴 것입니다. ;)

버그가 발생하여 피드백을 보내 주시면 신속하게 해결할 수 있습니다. :)

다시 설치하고 "plotly"패키지를 다시 인스턴스화하여 py 개체를 다시로드 지금 작업을해야하십시오 : https://plot.ly/~marianne2/38/or-illn-vs-or-edu/

나 별도의 게시물에 '호버'질문에 대답 보자.

의견을 보내 주셔서 다시 한 번 감사드립니다.

+0

예, 이제 작동합니다. 베타 테스터와 함께 즐거운 시간을 보내고 plot.ly를 만들어 주셔서 감사합니다! 내가 지금 호버를 재검토하는 또 다른 질문을 게시 할 것이다 ... – Sylvia

0

좋아, 그럼 내가 속한 곳에서이 답장을 옮길 수 있습니다. 마우스를 올리면 표시되는 내용을 수정하려면

# Load "plotly" 
library(plotly) 
# Open a Plotly connection 
py <- plotly() 

# Retrieve a Plotly graph in R 
hover_text <- py$get_figure("PlotBot", 81) 

str(hover_text$data) 
# This list has 4 elements, which all have dimension (attribute) 'text' 

# You can overwrite them one by one, say 
hover_text$data[[1]]$text[1] 
hover_text$data[[1]]$text[1] <- "US" 

# If you need something functional, I would recommend defining the necessary 
# functions and using sapply() 

# Plotly graph with hover text we just edited 
py$plotly(hover_text$data, kwargs=list(layout=hover_text$layout))