我有一个3行5列的多图展示。每一行显示的数据范围不同。为了正常展示数据,我没有设置y轴限制。
以下是我的代码:
以下是我的代码:
require(reshape2)
library(ggplot2)
library(RColorBrewer)
fileName = paste("./data_test.csv", sep = "")
## data available here: https://dl.dropboxusercontent.com/u/73950/data_test.csv
mydata = read.csv(fileName,sep=",", header=TRUE)
dataM = melt(mydata,c("id"))
dataM = cbind(dataM,
colsplit(dataM$variable,
pattern = "_",
names = c("Network_model", "order", "category")))
dataM$variable <- NULL
dataM <- dcast(dataM, ... ~ category, value.var = "value")
dataM$minCut <- NULL
dataM$nbr_communities <- NULL
dataM$mean_community_size <- NULL
dataM$density <- NULL
my_palette <- colorRampPalette(rev(brewer.pal(11, "Spectral")))
dataM = melt(dataM, id.vars = c("Network_model", "order", "nodesRemoved", "id"))
my_palette = c(brewer.pal(5, "Blues")[c(4)], brewer.pal(5, "Set1")[c(3)])
ggplot(dataM, aes(x= nodesRemoved ,y= value, group= order, color= order)) +
geom_point(size = .6,alpha = .15,position="jitter") + ## increased size
stat_smooth(se = FALSE, size = .5, alpha = .1, method = "loess") +
scale_color_manual(values=my_palette) +
theme_bw() +
theme(plot.background = element_blank(),
axis.line = element_blank(),
legend.key = element_blank(),
legend.title = element_blank(),
axis.text.x = element_text(size = 8),
axis.text.y = element_text(size = 8)
) +
scale_y_continuous("Value") +
scale_x_continuous("Time", limits=c(0, 100)) +
facet_grid(variable ~ Network_model,scales="free")
这将产生以下结果:
现在,我想有选择性地为三个行中的每个行设置限制,使得第一行的限制为c(1.9, 3),第二行的限制为c(0, 1) ,第三行的限制为c(.3, .7)。
如何在ggplot2或分面图中实现这一点?
grid.arrange
将行粘合在一起。(我怀疑除非你制作一个可重复的示例,否则你不会得到任何包含代码的答案。) - Gregor Thomasggplot
设置限制感到满意,请尝试使用scales = "free_y"
,而不是scales = "free"
。没有看到您的数据,无法猜测这是否是您要寻找的内容。 - Gregor Thomas