我正在绘制“wt”与“mpg”(来自“mtcars”数据集),现在我想根据“hp”为点着色。 我想采用绿色并调整其阴影,因此高“hp”值将变为深绿色,低值将变为淡绿色。
没有颜色的基础图:
data(mtcars)
plot <- with(mtcars, {
plot(wt, mpg, xlab="Weight", ylab="Miles per Gallon")
})
在R-Base中执行此操作的最简单方法是什么?那ggplot2 /格呢呢?
答案 0 :(得分:1)
基础R
您可以使用colorRamp
创建一个返回绿色阴影的函数:
cr <- colorRamp(c("green", "black"))
然后你可以使用:
进行绘图with(mtcars, {
plot(wt, mpg, col = rgb(cr(hp / max(hp)), max=255),
xlab="Weight", ylab="Miles per Gallon", pch=20)
})
cr
接受0到1之间的值,这就是我除以max(hp)
<强> GGPLOT2 强>
p <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(aes(col = hp))
p + scale_colour_gradientn(colours=c("green","black")) + theme_bw()
<强>图解强>
希望它有所帮助,
亚历
答案 1 :(得分:0)
使用类似的东西:
library(ggplot2)
ggplot(mtcars, aes(x=wt, y=mpg))+geom_point(aes(col=hp))
答案 2 :(得分:0)
查看classInt
包。它提供了几种将数值变量hp
转换为间隔的方法。包RColorBrewer
提供合理的调色板。例如,
library(classInt)
library(RColorBrewer)
n <- 5 # number of levels
hp_ints <- classIntervals(mtcars[, "hp"], n, style="quantile")
# other options for style include "fixed", "sd", "equal", "pretty", "quantile", "kmeans", "hclust", "bclust", "fisher", or "jenks"
pal <- brewer.pal(n, "Greens")
hp_col <- pal[findInterval(mtcars[, "hp"], hp_ints$brks, all.inside=TRUE)]
plot(mpg~wt, data=mtcars, col=hp_col, pch=19)