我想使用 ggplotly 绘制一个 ggplot2 图像我想要做的是最初绘制灰色填充的矩形,没有任何美学映射,然后在第二步中绘制瓷砖并根据美学改变颜色。当我使用 ggplot 时我的代码正在运行,但是当我尝试使用 ggplotly 将我的图形转换为交互式时崩溃
这是一个示例代码
library(ggplot2)
library(data.table)
library(plotly)
library(dplyr)
x = rep(c("1", "2", "3"), 3)
y = rep(c("K", "B","A"), each=3)
z = sample(c(NA,"A","L"), 9,replace = TRUE)
df <- data.table(x,y,z)
p<-ggplot(df)+
geom_tile(aes(x=x,y=y),width=0.9,height=0.9,fill="grey")
p<-p+geom_tile(data=filter(df,z=="A"),aes(x=x,y=y,fill=z),width=0.9,height=0.9)
p
但是当我输入这个
ggplotly(p)
我收到以下错误
[.data.frame
(g, , c("fill_plotlyDomain", "fill"))中的错误:
选择了未定义的列
我使用的版本是
> packageVersion("plotly")
1'4.7.1 _
packageVersion("ggplot2")
1 '2.2.1.9000'</p> ##########Edited 亚瑟的示例
p<-ggplot(df)+
geom_tile(aes(x=x,y=y,fill="G"),width=0.9,height=0.9)
p<- p+geom_tile(data=filter(df,z=="A"),aes(x=x,y=y,fill=z),width=0.9,height=0.9)
p<-p+ scale_fill_manual(
guide = guide_legend(title = "test",
override.aes = list(
fill =c("red","white") )
),
values = c("red","grey"),
labels=c("A",""))
p
这可行,但 ggplotly(p) 在图例中添加了标记为 G 的灰色条