另一种方法(不一定比以前的答案更好!)是使用viridis
包。正如这里所解释的,它允许基于两种以上颜色的各种颜色渐变。
该软件包非常易于使用 - 您只需将ggplot2
比例填充功能(例如,scale_fill_gradient(low = "skyblue", high = "dodgerblue4")
)替换为等效viridis
功能。
因此,更改此图的代码:
ggplot(mtcars, aes(wt*1000, mpg)) +
geom_point(size = 4, aes(colour = hp)) +
xlab("Weight (pounds)") + ylab("Miles per gallon (MPG)") + labs(color='Horse power') +
scale_x_continuous(limits = c(1000, 6000),
breaks = c(seq(1000,6000,1000)),
labels = c("1,000", "2,000", "3,000", "4,000", "5,000", "6,000")) +
scale_fill_gradient(low = "skyblue", high = "dodgerblue4") +
theme_classic()
产生:
为此,它使用viridis
:
ggplot(mtcars, aes(wt*1000, mpg)) +
geom_point(size = 4, aes(colour = factor(cyl))) +
xlab("Weight (pounds)") + ylab("Miles per gallon (MPG)") + labs(color='Number\nof cylinders') +
scale_x_continuous(limits = c(1000, 6000),
breaks = c(seq(1000,6000,1000)),
labels = c("1,000", "2,000", "3,000", "4,000", "5,000", "6,000")) +
scale_color_viridis(discrete = TRUE) +
theme_classic()
唯一的区别在于倒数第二行:scale_color_viridis(discrete = TRUE)
.
这是使用产生的情节viridis
:
希望有人觉得这很有用,因为它是我在提出这个问题后最终使用的解决方案。