【发布时间】:2014-10-06 09:25:22
【问题描述】:
我想在 ggplot 中重新创建一个“图像”图(因为包的其他一些方面)。但是,我面临一个由我的 y 尺度引起的问题,它由不相等但逻辑间隔的值定义,例如我会有 y = 2,4,8,16,32 的 z 值。这会导致瓷砖不一样大,所以我的图中有这些白色条带。我可以通过将 y 值转换为一个因子来解决这个问题,但我不想这样做,因为我还试图在图形上绘制其他需要数字比例的几何对象。 这稍微解决了我的问题:
# random data, with y scale numeric
d <- data.frame(Var1=rep(1901:2000,10),Var2=rep(c(2,4,8,16,32),each=100),value=rnorm(500,50,5))
line=data.frame(Var1=1901:2000,Var2=rnorm(50,1.5,0.5))
ggplot(d, aes(x=Var1, y=Var2)) +
geom_tile(aes(fill=value)) +
geom_line(data=line)
# y as factor
d2 = d
d2$Var2=as.factor(d2$Var2) ggplot(d2, aes(x=Var1, y=Var2)) +
geom_tile(aes(fill=value)) +
geom_line(data=line)
我尝试将线值归因于最接近的因子水平的值,但这会引入一个很大的错误。另外,我尝试了geom_tile 中的size 选项,但也没有成功。
在示例中,y 数据经过对数转换,但这只是为了便于制作假数据集。
谢谢。
【问题讨论】:
-
data=line中的“行”是什么?你还没有定义它,ggplot 抱怨试图处理内置的“line”function -
对不起,我忘记复制行了。现在变了。
-
尝试设置
height美学来区分 Y 坐标。由于图块以 Y 坐标为中心,因此需要进行一些调整,但应该很容易。 -
如果我这样做,白带确实消失了,但单元格的大小不同。
-
如何让带具有相同的高度但保持数字比例以便可以绘制线图?除非有一个简单的转换,但您似乎希望它通用。您能否附上或指出您想要的图片?