如何控制序列标识的字体大小?

时间:2017-03-24 11:02:24

标签: r ggplot2

我有很多序列标识,我使用ggplot2ggseqlogo绘制。垂直轴保持不变,但每个图的水平轴不同。

我不知道如何为每个字母创建宽度相同的序列标识。我尝试使用stack_width手动调整字母宽度,以获得不同长度的序列。不幸的是,这导致了各个字母之间的差距。

如何在不增加序列长度的情节下实现相同的字母大小,而不会在字母间产生间隙?

下面是我面临的问题的一个例子:

# "R version 3.3.1 (2016-06-21)"
# "x86_64-w64-mingw32"
# library(ggplot2)
# library(ggseqlogo)

AA_alphabet <- c('R','H','K','D','E','S','Y','T','N','Q','C','G','P','W','A','V','I','L','M','F')

AA1 = c('RHKDES', 'RHKDES', 'RHKDGP', 'RHKDGP', 'TNQCGP')
ggplot() + geom_logo(AA1, method='p', seq_type='other', namespace=AA_alphabet)+theme_logo()

AA2 = c('RH', 'RH', 'RH', 'TN', 'TN')
ggplot() + geom_logo(AA2, method='p', seq_type='other', namespace=AA_alphabet)+theme_logo()

# control for sequence length:
ggplot() + geom_logo(AA2, method='p',seq_type='other', namespace=AA_alphabet,stack_width = 0.2) + theme_logo()

1 个答案:

答案 0 :(得分:0)

实际上,这样的事情怎么样?

require(gridExtra)
AA_alphabet <- c('R','H','K','D','E','S','Y','T','N','Q','C','G','P','W','A','V','I','L','M','F')

AA1 = c('RHKDES', 'RHKDES', 'RHKDGP', 'RHKDGP', 'TNQCGP')
AA2 = c('RH', 'RH', 'RH', 'TN', 'TN')

p1 = ggplot() + geom_logo(AA1, method='p', seq_type='other', namespace=AA_alphabet)+theme_logo()
p2 = ggplot() + geom_logo(AA2, method='p', seq_type='other', namespace=AA_alphabet)+theme_logo()

p3 = grid.arrange(p1, p2, ncol=1)
print(p3)

您可以根据需要添加任意数量的地块grid.arrange,并使用ncolnrow参数调整行和列的布局。