2016-08-04 112 views
0

我有这样一个数据帧:柱状图与两个因素有渐变颜色中的R

df = data.frame(time = rep(0.5:9.5, each = 10), roi = rep(1:10, 10), area = runif(100, 5.0, 7.5)) 

我想提请包括timeroi 10个值的10巴的曲线图。在这种情况下,x轴将是roi,y轴将是time,并且area的值将以带渐变颜色的条显示(最高=白色,最低=黑色)。 y轴从0.5顶部颠倒到9.5底部,条宽为2.

预期的数字看起来像 this image

我期待着答复,我感谢你的一切帮助。

+0

,你能解释一下你将如何绘制一个栏(可以说,在上面的一个,在'时间== 0.5')如果你的手(纸+彩色铅笔)做? – Qaswed

+0

对不起,我在数据框中有点混乱,你可以改为 df = data.frame(time = rep(0.5:9.5,each = 10),roi = rep(1:10,10),area = runif(100,5.0,7.5)) –

+0

@Qaswed:我在这里找到了一个名为“yAxisReversed”的选项ggplot2.barplot http://www.sthda.com/english/wiki/ggplot2-barplot-easy-bar-graphs- in-r-software-using-ggplot2 –

回答

0

这是你想到的吗?

df=data.frame(time=as.factor(rep(0.5:9.5,each=10)),roi=rep(1:10,10),area=runif(100, 5.0, 7.5)) 

df$time <- factor(df$time, levels=rev(levels(df$time))) 

ggplot(data=df, aes(y=factor(roi), x=time, fill = area)) + 
    theme_minimal() + coord_flip() + 
    geom_tile(colour = "white", width = .9, height = 1) + 
    scale_fill_gradient(low="blue",high="red") 

enter image description here

+0

是的,那是我需要的。我非常爱你和你的回答。我在拍手。谢谢soooooooo了。 –

+0

嗨Shirin格兰德,我想要减少以下条的宽度(实际上是高度): df = data.frame(time = as.factor(rep(0.5:9.5,each = 10)),roi = rep( 1:10,10),面积= runif(100,5.0,7.5)) df $ time < - factor(df $ time,levels = rev(levels(df $ time))) ggplot(data = df, aes(y = factor(roi),x = time,fill = area))+ theme_minimal()+ coord_flip()+ geom_tile(color =“white”,width = 0.9,height = 0.5)+ scale_fill_gradient低=“蓝”,高=“红”) 如何删除条之间的空间(我的意思是罗伊斯之间的空间)。 非常感谢。 –

+1

在geom_tile(color =“white”,width = .9,height = 1)中调整宽度和高度参数(如果不需要空格,则为零)。 –