我有以下 Dataframe 。
S <- rep(c("A","B","C"), each = 30)
Y <- rep(c("X", "Y", "Z"), 30)
V <- as.factor(runif(90, min=0, max=100))
df <- as.data.frame(cbind(S, Y, V))
df$V <- as.numeric(V)
我把它标绘如下。
ggplot(data = df, aes(x = Y,
y = V, group = 1, fill=V)) +
geom_line(linewidth=3) +
theme_classic()+
labs(title="",
x=paste(""),
y=paste(""),
)+
theme(plot.title=element_text(size=18, face="bold",hjust = 0.7, vjust=0.2,
margin = margin(t = 0, r = 10, b = 10, l = 0)),
axis.text.x=element_text(size=14, face="bold", angle=90),
axis.text.y=element_blank(),
axis.title.x=element_text(size=16, face="bold",
margin = margin(t = 10, r = 0, b = 0, l = 0)),
axis.title.y=element_blank(),
legend.text=element_text(size=14, face="bold"),
legend.title =element_text(size=14, face="bold"))+
facet_wrap(~ S, ncol= 1, strip.position="left")+
geom_area()+
scale_fill_gradient(low="blue", high="red")
有没有一种方法可以让区域颜色根据V的值而改变。目前的图看起来是这样的,但我希望值在图经过每个X坐标时都能对应。
1条答案
按热度按时间pengsaosao1#
我通常会通过插入数百个值并为每个值设置单独的列来完成此操作。因为您有一个离散轴,所以必须将其转换为数值,然后使用
scale_x_continuous
再次使其看起来离散