【发布时间】:2012-06-09 16:41:45
【问题描述】:
我用
frame <- read.table(paste('data', fname, sep="/"), sep=",", header=TRUE)
colnames(frame) <- c("pos", "word.length")
plot <- ggplot(frame, aes(x=pos, y=word.length)) + xlim(0,20) + ylim(0,20) + geom_density2d() + stat_density2d(aes(color=..level..))
png(paste("graphs/", fname, ".png", sep=""), width=600, height=600)
print(plot)
dev.off()
创建情节,但他们被切断了。我该如何解决这个问题?
我用来创建这个图的数据:http://sprunge.us/gKiL
【问题讨论】:
-
如果我编造一些范围从 0 到 20 的数据,我的图看起来很棒。也许您可以提供一些复制问题的数据?如果您省略
xlim和ylim选项,ggplot 将根据您的数据限制为您选择它们。我怀疑这就是你的问题所在。 -
你是对的,但我有不同的数据集,一些在 3 到 10 的范围内,其他的在 0 到 20 的范围内,我希望它们具有可比性。显然
lims 没有正确传递。 -
0:20 时,您已经通过了限制。所以从 3:10 开始的数据看起来“被截断”,因为它们没有延伸到绘图的边缘。同样,如果您提供一些数据,您可以获得更好的答案。我建议将数据放入一个 data.frame 并使用
facet_wrap或facet_grid进行绘图并修复您的比例。这样所有的情节都在一个尺度上。 -
感谢您添加一些数据,也许我仍然不明白这个问题,但我坚持认为
ggplot正在按照您的要求做。您的数据的 y 范围为3:16,x 范围为2:9,这就是绘制的内容。但是,您还告诉ggplot,您希望图表的范围从 0 扩展到 20,这就是您的链接图显示的内容。 -
所以我将
lims 与范围混淆了。我可以告诉ggplot我希望它根据限制假设不同的范围吗?