2017-07-19 134 views
0

我有一个根据数据集中某个离散值(0,5,10,15,20,25)中的数字变量进行着色的多边形图。我目前有一个静态的ggplot()输出,它按照我的意图“运行”。也就是说,图例值是截断值(0,5,10,15,20,25)。静态情节如下 -在ggplotly()中更改图例标签

Static

然而,当我只是这个静态的情节转换成一个互动的情节,传说值视为十六进制值(#54278F,#756BB1等),而不是切断值(0,5,10,15,20,25)。这种互动情节的屏幕截图如下所示 -

Interactive

我试图确定一种方法来改变图例标签的互动情节是切断值(0,5,10,15, 20,25)。任何建议或支持将不胜感激!

下面是我用来创建静态和交互式剧情代码:用砍分

library(plotly) 
library(ggplot2) 
library(RColorBrewer) 

set.seed(1) 
x = abs(rnorm(30)) 
y = abs(rnorm(30)) 
value = runif(30, 1, 30) 

myData <- data.frame(x=x, y=y, value=value) 

cutList = c(5, 10, 15, 20, 25) 
purples <- brewer.pal(length(cutList)+1, "Purples") 
myData$valueColor <- cut(myData$value, breaks=c(0, cutList, 30), labels=rev(purples)) 

# Static plot 
sp <- ggplot(myData, aes(x=x, y=y, fill=valueColor)) + geom_polygon(stat="identity") + scale_fill_manual(labels = as.character(c(0, cutList)), values = levels(myData$valueColor), name = "Value") 

# Interactive plot 
ip <- ggplotly(sp) 

回答

1

标签和使用scale_fill_manual的颜色。

cutList = c(5, 10, 15, 20, 25) 
purples <- brewer.pal(length(cutList)+1, "Purples") 
myData$valueLab <- cut(myData$value, breaks=c(0, cutList, 30), labels=as.character(c(0, cutList))) 

# Static plot 
sp <- ggplot(myData, aes(x=x, y=y, fill=valueLab)) + geom_polygon(stat="identity") + scale_fill_manual(values = rev(purples)) 

# Interactive plot 
ip <- ggplotly(sp)