我正在尝试重现我找到的here ggplot geom_bar
示例。
代码很简单
library(ggplot2)
library(plotly)
dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
# No legend, since the information is redundant
ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) +
geom_bar(colour="black", stat="identity") +
guides(fill=FALSE)
ggplotly()
在ggplot中,fill-legend按预期隐藏,但情节与示例不同:
由于我认为这是与软件包版本相关的问题,因此我附加了sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=German_Austria.1252 LC_CTYPE=German_Austria.1252 LC_MONETARY=German_Austria.1252 LC_NUMERIC=C LC_TIME=German_Austria.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plotly_4.5.6 ggplot2_2.2.1 nvimcom_0.9-19
loaded via a namespace (and not attached):
[1] Rcpp_0.12.8 tidyr_0.6.0 viridisLite_0.1.3 digest_0.6.10 dplyr_0.5.0 assertthat_0.1 grid_3.3.2 plyr_1.8.4 R6_2.2.0 jsonlite_1.1 gtable_0.2.0 DBI_0.5-1
[13] magrittr_1.5 scales_0.4.1 httr_1.2.1 lazyeval_0.2.0 tools_3.3.2 htmlwidgets_0.8 purrr_0.2.2 munsell_0.4.3 base64enc_0.1-3 colorspace_1.3-1 htmltools_0.3.5 tibble_1.2
答案 0 :(得分:1)
我刚注意到solution引用的lukeA也提供了一种通过在ggplotly对象中手动禁用它来摆脱图例的方法。例如:
library(ggplot2)
library(plotly)
dat <- data.frame( time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")), total_bill = c(14.89, 17.23))
# No legend, since the information is redundant
p <- ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) + geom_bar(colour="black", stat="identity") + guides(fill=FALSE)
p <- ggplotly(p)
for (i in 1:nrow(dat)){
p$x$data[[i]]$text <- c(p$x$data[[i]]$text, "")
p$x$data[[i]]$showlegend <- FALSE
}
p
仍然是一个肮脏的解决方案,但它完成了工作...
答案 1 :(得分:0)