2016-08-03 3 views
0

플롯 plotly의 색상을 사용자 정의하고 싶습니다. 이 연속 변수에 대해 잘 작동하고 당으로의 배율 docs :사용자 정의 불연속 색 눈금 플롯

> plot_ly(iris, x = Petal.Length, y = Petal.Width, 
      color = Sepal.Length>6, colors = c("#132B43", "#56B1F7"), 
      mode = "markers") 


Warning message: 
In RColorBrewer::brewer.pal(N, "Set2") : 
    minimal value for n is 3, returning requested palette with 3 different levels 
: 나는 인수가 이산 (문자 또는 요인) 색상을 한 경우, 그러나,이 여전히 작동하지만 경고를 발생

library(plotly) 

plot_ly(iris, x = Petal.Length, y = Petal.Width, 
      color = Sepal.Length, colors = c("#132B43", "#56B1F7"), 
      mode = "markers") 

어떻게 올바르게 수행 할 수 있습니까?

답변

4

이것은 음모가 아니지만 ColorBrewer의 디자인 기능 (및 관련 RColorBrewer 패키지)입니다. color에 3 단계 이상의 요인에 경고를 지정하면 경고가 사라지는 것을 확인할 수 있습니다 (예 :

plot_ly(iris, x = Petal.Length, y = Petal.Width, 
     color = cut(Sepal.Length, 3), colors = "Set1", 
     mode = "markers") 

데이터 클래스의 ColorBrewer를의 최소 수는 (당신이 http://colorbrewer2.org/에서 볼 수있는 곳보다 적은 세 개의 클래스를 선택할 수 없습니다) 세 가지 때문입니다. 예를 들어, ?brewer.pal (plotly가 참조하는 기능)에서는, 구체적

모든 순차 팔레트 9 개 상이한 값까지 3 개 상이한 값에서 변화 가능하다 말한다. 질적 팔레트 용

[...]

은 구분 가능한 값의 최소 수는 항상 3

(plotly() 전화 내부 기능) 항상 brewer.pal() 호출 build_plotly() 이후 (선 (474) here 참조 인), build_plotly() 함수를 다시 작성하지 않고이 데이터를 수정하지 않아도 brewer.pal()을 3 개 미만의 데이터 클래스로 호출 할 수 없습니다. 한편

는 경고를 해제 객체에 플롯 출력을 할당하고이 같은 suppressWarnings()print(object) 문을 포장하기 :

plotly_plot <- plot_ly(iris, x = Petal.Length, y = Petal.Width, 
     color = Sepal.Length>6, colors = c("#132B43", "#56B1F7"), 
     mode = "markers") 

suppressWarnings(print(plotly_plot)) 
+0

는 의미가 있습니다. 이것에 대한 버그 보고서를 제출했습니다 : https://github.com/ropensci/plotly/issues/670 – RoyalTS

+0

그동안이 경고를 없애 버릴 수있는 방법은 없습니까? 나는 억누르기를 시도했으나 여전히 잘못된 곳에서 억압하는 것처럼 보인다. 또한 사용되지 않은 세 번째 레벨을 요소에 추가하려고했습니다. 그러나 그것도 작동하지 않는 것 같습니다. – RoyalTS

+0

그에 따라 답변을 업데이트했습니다. – Felix