小编Kri*_*zbi的帖子

ggplot2每个美学的多个尺度/传说,重新审视

我有一个例子,我想使用ggplot突出显示序列比对的几个属性.我正在使用geom_tile并希望有两组不同颜色的瓷砖用于两个分数属性.我只能想象一个.

我知道每个美学一个尺度的限制(以及它背后的逻辑),但也许有人知道如何在这样的情况下破解它,在一个'情节'中有不同的色标是有意义的.

也许手动添加Grobs,但我不知道从哪里开始......

另外一个问题:由于某种原因,override.aes=list(shape = "A")这不起作用,任何想法为什么?

还有一种方法:任何按比例缩放文本大小(或相反)的文本缩放方法?

library(ggplot2)
library(grid)

pd = data.frame(
  letters = strsplit("AGTGACCGACTATCATAGTGACCCAGAATCATAGTGACCGAGTATGAT", "")[[1]],
  species = rep(c("Human", "Armadillo", "Porcupine"), each=16),
  x       = rep(1:16, 3),
  change  = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
              0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,
              0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0),
  score1  = c(0,0,0,0,0,0,1,1,2,2,2,3,3,3,4,3,
              0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,
              0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  score2  = c(0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,
              0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,
              0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0)
)


ggplot(pd[pd$score1 != 0,], aes(x=x, y=species)) +
  coord_fixed(ratio = 1.5, xlim=c(0.5,16.5), ylim=c(0.5, 3.5)) +
  geom_tile(aes(fill=score1)) +
  scale_fill_gradient2("Score 1", limits=c(0,4),low="#762A83", mid="white", high="#1B7837", guide=guide_colorbar(title.position="top")) +
  geom_text(data=pd, aes(label=letters, color=factor(change)), size=rel(5), family="mono") +
  scale_color_manual("Change", values=c("black", "#F2A11F"), labels=c("None", "Some"), guide=guide_legend(direction="vertical", …
Run Code Online (Sandbox Code Playgroud)

r data-visualization ggplot2

16
推荐指数
2
解决办法
5594
查看次数

为 geom_text 图层显示单独的图例?

我有以下情节:

library(ggplot2)

ib<- data.frame(
  category =   factor(c("Cat1","Cat2","Cat1", "Cat1", "Cat2","Cat1","Cat1", "Cat2","Cat2")),
  city =       c("CITY1","CITY1","CITY2","CITY3", "CITY3","CITY4","CITY5", "CITY6","CITY7"),
  median =     c(1.3560, 2.4830, 0.7230, 0.8100, 3.1480, 1.9640, 0.6185, 1.2205, 2.4000),
  samplesize = c(851, 1794,   47,  189,  185,    9,   94,   16,   65)
  )


p<-ggplot(data=ib, aes(x=city, y=category, size=median, colour=category, label=samplesize)) +
  geom_point(alpha=.6) +
  scale_area(range=c(1,15)) +
  scale_colour_hue(guide="none") +
  geom_text(aes(size = 1), colour="black")
p
Run Code Online (Sandbox Code Playgroud)

(我正在绘制与中值成正比的圆圈,并用代表样本大小的文本标签覆盖。图片位于http://imgur.com/T82cF

有什么办法可以分开这两个传说吗?我想要一个图例(标记为“中位数”)给出圆圈的比例,另一个图例带有一个我可以标记为“样本大小”的单个字母“a”(甚至更好的数字)。由于这两个属性没有任何关系,将它们捆绑在同一个图例中是没有意义的。

我尝试了各种组合,但我能想到的最好的方法是完全丢失文本图例:)

谢谢你的回答!

r ggplot2

5
推荐指数
1
解决办法
2757
查看次数

标签 统计

ggplot2 ×2

r ×2

data-visualization ×1