我在中创建了一个热图,并ggplot2使用geom_tile映射了值scale_fill_gradientn。色标分为两个渐变。一个梯度将值从0映射到0.05,另一个梯度将值从0.05映射到1。我希望红黄色渐变(0-0.05)具有与黑褐色渐变(0.05-1)相同的高度。
问题:如何修改颜色条,以使值0.05位于条的中间/中央,从而使两个不同的颜色渐变的高度相同?
换句话说,假设0.05刻度线是一个滑块,您可以将其移动到扩展/压缩各个渐变的条的中间。
以下两篇文章讨论了类似的问题,但没有最终解决方案,或者至少没有我可以轻易理解并回答我的问题的解决方案:
非常感谢大家阅读我的问题并思考可能的解决方案。到目前为止,除了在Photoshop中编辑颜色栏外,我什么都找不到。彼得
可重现的示例:
TEST <- read.csv ("https://filetea.me/n3wHRhuy0GlS4xvjQDxs95BVA",header=T,row.names=NULL)
library(ggplot2)
ggplot(TEST, aes(x=Measure, y=SMTSD))+
geom_tile(aes(fill=Pval),colour="grey50", size=0.1) +
scale_x_discrete(expand = c(0,0))+
coord_equal(ratio=1)+
scale_fill_gradientn(colours=c("red","yellow","black","#996633"),
values=c(0,0.0499,0.05,1),
na.value="white", guide="colourbar",
name="P-value",limits=c(0,1),breaks=c(0,0.05,1))+
guides(fill = guide_colourbar(barheight = 20, direction = "vertical",
title.position="top", title.hjust = 0.5,title.vjust = 0.5, nbin = 50))
Run Code Online (Sandbox Code Playgroud) 我正在根据样本类型(x轴)绘制Gene1计数(y轴)的等级.我希望根据它们的原始组织(乳房,结肠直肠,肺)和颜色代码对样本类型进行分组,无论它们分别来自癌症还是来自红色和绿色的正常组织.
我制作了图1)BOXPLOTS WITH FACETS(请参见下文),这与我的愿景很接近,但显示了一些主要问题.我在图表上有一些问题需要改进:
[IMG] http://i57.tinypic.com/10yfmmw.png [/ IMG ]
1)每个方面最终有9个车道(列),其中许多车道没有被箱子占据.如何删除每个方面中未被框占用的通道(列)?
2)我是否可以在不使用构面的情况下绘制此图形,同时仍保留图中所示的分组?
3)是否可以创建两个小平面标签?即我想在现有的facet标签上方放置标签"Gene1".这将使我能够为Gene2生成如下所示的相同图形,因此我可以使用每个图形顶部的"主"构面标签将两个图形彼此相邻.
我希望这是有道理的.谢谢大家的建议和想法.
请参阅以下代码,以便您下载我的数据并重现图表:
测试文件导入
fileURL <- "https://dl.dropboxusercontent.com/u/4098921/testfile.csv"
test <- read.csv(fileURL,header=T)
head(test)
> head(test)
Subset Tissue Type id Gene1 Gene2
1 Normal Breast GTEx_Breast 1 5027 12597
2 Normal Breast GTEx_Breast 2 5287 12338
3 Normal Breast GTEx_Breast 3 2385 12543
4 Normal Breast GTEx_Breast 4 3174 12266
5 Normal Breast GTEx_Breast 5 6593 11350
6 Normal Breast GTEx_Breast 6 4648 10932
Run Code Online (Sandbox Code Playgroud)
1)带有FACETS的BOXPLOT
library(ggplot2)
ggplot(test,aes(x=Type, y=Gene1, fill=Subset))+ …Run Code Online (Sandbox Code Playgroud)