この前の質問に一部基づいて、選択可能なx、y、および色変数を使用してプロットグラフを作成しようとしています。x 変数と y 変数の選択は機能しているように見えますが、新しい x 変数と y 変数を選択すると、ポイントの色が失われます。
さらに、ポイントカラーを選択するために同様の戦略を使用しようとしましたが、残念ながらこれはうまくいかないようです.
別のオプションは、以前にリンクされた質問で「表示設定」戦略を使用することです。
例:
library(plotly)
library(pcaMethods)
pca <- pcaMethods::pca(mtcars, nPcs=3)
df <- as.data.frame(pca@scores)
colors1 <- sample(c("red", "green", "blue"), nrow(df), replace=TRUE)
colors2 <- sample(c("red", "green", "blue"), nrow(df), replace=TRUE)
p <- plotly::plot_ly(df, x = ~PC1, y = ~PC2, type = "scatter",
color = sample(c("red", "green", "blue"), nrow(df), replace=TRUE),
mode = "markers")
p <- plotly::layout(
p,
title = "Dropdown PCA plot",
updatemenus = list(
list(
y = 0.7,
buttons = list(
list(method = "restyle",
args = list(
"x", list(df$PC1)
),
label = "PC1"),
list(method = "restyle",
args = list(
"x", list(df$PC2)
),
label = "PC2"),
list(method = "restyle",
args = list(
"x", list(df$PC3)
),
label = "PC3")
)
),
list(
y = 0.5,
buttons = list(
list(method = "restyle",
args = list(
"y", list(df$PC1)
),
label = "PC1"),
list(method = "restyle",
args = list(
"y", list(df$PC2)
),
label = "PC2"),
list(method = "restyle",
args = list(
"y", list(df$PC3)
),
label = "PC3")
)
)
)
)
htmlwidgets::saveWidget(p, "test.html", selfcontained=FALSE)