ggplotly を使用して ggplot2 画像をプロットしたいと思います。私がやろうとしているのは、最初に美的マッピングなしで灰色の塗りつぶしの長方形をプロットし、次に 2 番目のステップでタイルをプロットし、美学に基づいて色を変更することです。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> ##########アーサーの例を編集
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 というラベルの付いた灰色のバーを追加します