我希望在散点图中添加一个颜色条。目前生成需要修改为彩条的离散图例。请帮我解决一下这个。提前谢谢,
library(ggplot2)
x_axis<-sample(1:55)
y_axis<-sample(100:154)
plotName<-'Scatter plot with colorbar instead of discrete legend'
color_plate <- colorRampPalette(colors = c('dodgerblue4','dodgerblue','green3','green2','yellow2','red','darkred'),space='Lab') #v1
color_plate <- color_plate(55)
dat_1 <- data.frame(xvar = x_axis,
yvar = y_axis,
col1 <- c(rep(1,8),rep(2,8),rep(3,8),rep(4,8),rep(5,8),rep(6,8),rep(7,7)))
# col1<-(rep(1,6),rep(2,6),rep(3,6),rep(4,6),rep(5,6),rep(6,6),rep(7,6),rep(8,6),rep(9,7)))
chart<-ggplot(dat_1, aes(x=xvar, y=yvar)) +
geom_point(shape=19,size=5,aes(colour = col1)) +
scale_colour_continuous( low = "blue", high = "red", space ="Lab",name="observation",label=rep("",7) , #nrow(dat_1)
guide = guide_legend(direction = "horizontal", title.position = "bottom", title.hjust=0.5) ) +
theme(legend.position = "bottom") +
labs(title=plotName)+
scale_y_continuous(expression(atop('Net'~CO[2]~'Flux '~CO[2]~' (β)' )))+
scale_x_continuous(expression(atop('Gross'~CO[2])))
print(chart)
答案 0 :(得分:3)
如果我们知道您选择这些特定颜色的原因,这会更容易。如果它们基本上是任意的,那么这可能会起作用:
### add a column for color
dat_1 <- data.frame(xvar = x_axis,
yvar = y_axis,
col1 = 1:7)
编辑这应该接近你想要的
ggplot(dat_1, aes(x=xvar, y=yvar)) +
geom_point(shape=19, size=5, aes(colour = col1)) +
scale_colour_continuous( low = "blue", high = "red", space = "Lab",
name="observation", label=rep("", nrow(dat_1)) ,
guide = guide_legend(direction = "horizontal",
title.position = "bottom", title.hjust=0.5) ) +
theme(legend.position = "bottom") +
scale_y_continuous(expression(atop('Net'~CO[2]~'Flux '~CO[2]~' (β)' ))) +
scale_x_continuous(expression(atop('Gross'~CO[2])))
哪个给出了
根据您的评论,我制作了标签&#39;空白&#39;通过传递""
作为值。更改外观遵循guide legend的帮助。
如果您有55个观察值并且希望它们全部具有7个颜色值中的一个,那么:
dat_1$col1 <- rep(seq(7), 8)[-7*8]
应该为你做。您可以根据自己的喜好更改颜色。我个人喜欢scale_color_brewer
,因为它很容易看出哪些适合色盲的观众。
<强> UPDATE2 强>
我认为您的代码中可能存在拼写错误。 以下适用于我:
set.seed(1)
dat_1 <- data.frame(xvar = sample(1:55),
yvar = sample(100:154),
col1 = c(seq(10), rep(seq(15), each=3))
)
然后如上图所示,你将得到55个色调为15色调的点。