我有两种类型的参数和一种化合物的响应:
用于生成此图片的代码是
for (i in levels(data$ProteinName))
{
temp <- subset(data, data$ProteinName == i)
plot <- ggplot(data = temp, aes(x= temp$id, y = temp$Matrix))+
geom_tile( aes( fill= temp$TotalArea))+
labs(title= i, x = NULL, y = NULL, fill = "Average Total Area")+
geom_text(aes(label=round(TotalArea, digits = 0)), color = "White")+
scale_fill_gradientn (colors=c(low = "blue4", mid="gold", high = "red"),
na.value = "violetred")+
theme_bw()
print(plot)
}
但这是12个情节中的一个,所以对于我的报告我不得不把它带入一个方面,但我还没有找到一种方法来创建一个自由尺度的“z轴”尺度当前代码是
temp <- data
plot <- ggplot(data = temp, aes(x= temp$id, y = temp$Matrix))+
facet_wrap(~temp$ProteinName, scale = "free")+
geom_tile( aes( fill= temp$TotalArea))+
labs(title= i, x = NULL, y = NULL, fill = "Average Total Area")+
geom_text(aes(label=round(TotalArea, digits = 0)), color = "White")+
scale_fill_gradientn (colors=c(low = "blue4", mid="gold", high = "red"),
na.value = "violetred")+
theme_bw()
print(plot)
并给出以下内容:
但是这里的瓷砖颜色(z轴)是不是自由的,任何人都知道如何创建一个自由的z轴? 你可以在PE面上看到它只是蓝色,但在这个方面,观察到的浓度存在很大差异。
目标是读者可以看到大型响应(红色)和最低(蓝色)是什么。
希望你能帮助我。
答案 0 :(得分:0)
感谢您的回答, 在帖子的帮助下: Place a legend for each facet_wrap grid in ggplot2 这很简单, 旧剧本是:
for (i in levels(data$ProteinName))
{
temp <- subset(data, data$ProteinName == i)
plot <- ggplot(data = temp, aes(x= temp$id, y = temp$Matrix))+
geom_tile( aes( fill= temp$TotalArea))+
labs(title= i, x = NULL, y = NULL, fill = "Average Total Area")+
geom_text(aes(label=round(TotalArea, digits = 0)), color = "White")+
scale_fill_gradientn (colors=c(low = "blue4", mid="gold", high = "red"),
na.value = "violetred")+
theme_bw()
print(plot)
}
结果: old plot
之后我们使用gridextra包中的fucntion grid.arrange(grobs = list_of_plots)
更新了脚本
因为我必须在循环中创建一个列表,这是通过:plot_v[[i]] <- plot
完成的,plot_v是绘图列表的名称。
然后将此列表添加到网格排列
所以新脚本现在是
require(gridExtra)
require(ggplot2)
plot_v <- list()
for (i in levels(data$ProteinName))
{
temp <- subset(data, data$ProteinName == i)
plot <- ggplot(data = temp, aes(x= temp$id, y = temp$Matrix))+
geom_tile( aes( fill= temp$TotalArea))+
labs(title= i, x = NULL, y = NULL, fill = "Average Total Area")+
geom_text(aes(label=round(TotalArea, digits = 0)), color = "White", size= 2.5)+
scale_fill_gradientn (colors=c(low = "blue4", mid="gold", high = "red"),
na.value = "violetred")+
theme_bw()+
guides(fill = "none")
print(plot)
assign(paste("plot", i, sep="_"), plot)
plot_v[[i]] <- plot
}
grid.arrange(grobs = plot_v)
这给出了结果 new plot
我要感谢你的帮助