在下圖中,如何cty >= 30以綠色顯示所有值并cty < 30以紅色顯示所有值?謝謝!
library(ggplot2)
data(mpg)
p <- ggplot()
geom_point(data = mpg, aes(displ, manufacturer, size = cty), alpha = 0.2)
scale_size_continuous(breaks = c(30, 20, 10))
scale_color_manual(values = c("green", "red", "red")) # does not work
p

uj5u.com熱心網友回復:
我認為cty資料集中沒有任何大于 30 的值,但由于這只是一個示例,讓我們將截止值設為 15:
ggplot()
geom_point(data = mpg, aes(displ, manufacturer, size = cty,
color = cty <= 15), alpha = 0.2)
scale_size_continuous(breaks = c(30, 20, 10))
scale_color_manual(values = c("green", "red"))

如果要合并圖例,則需要一個模擬離散色標的連續色標,例如:
ggplot()
geom_point(data = mpg, aes(displ, manufacturer, size = cty,
color = cty), alpha = 0.2)
scale_size_continuous(breaks = c(30, 20, 10))
scale_color_gradientn(colors = c("red", 'red', "green", 'green'),
values = c(0, 0.5, 0.50001, 1),
breaks = c(30, 20, 10),
guide = guide_legend())

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482176.html
