轴标签和标题被剪切在条形图中,在Rshiny中用图形剪裁

时间:2016-05-16 20:08:58

标签: r ggplot2 shiny plotly geom-bar

在将ggplot2图转换为情节图时,我遇到了一些问题。 这是我的代码:

> dput(dat.c)
structure(list(Cell_Line = structure(1:15, .Label = c("NBLS", 
"NBSD", "NGP", "NLF", "RPE1", "RPE1MYCN40HT", "RPE1MYCNWT", "RPE1WT40HT", 
"SKNAS", "SKNDZ", "SKNFI", "SKNKAN", "SKNSH", "SMSSAN", "SY5Y"
), class = "factor"), A1CF = c(5.10772389542502, 5.04909249557583, 
5.16367852798093, 5.14220860530212, 5.25310652067225, 5.26436607107436, 
5.230991944454, 5.4310065318786, 5.18630235564568, 5.02696275142877, 
5.04518295317946, 5.15650800484188, 5.18630235564568, 5.18630235564568, 
5.04905014785891), A2M = c(5.95668979157631, 5.59054925920344, 
5.87084903365957, 5.85359773104682, 5.94551823960579, 5.82444459419149, 
5.69488212149351, 5.70563676209623, 5.81016207843128, 5.66186721932247, 
5.62134775395947, 5.62471305571508, 5.67165736680416, 5.76130826308792, 
5.88006576048066), A2ML1 = c(5.56172395998964, 5.50076886952901, 
5.7884753846352, 5.86613223339835, 5.82836474266047, 5.62750510524894, 
5.76666636363946, 5.95103526370421, 5.58407662670697, 5.44780492507868, 
5.35529657578242, 5.58813057293296, 5.67254168845041, 5.68685275370324, 
5.6859273460443), A4GALT = c(6.73058652581215, 6.57480531818191, 
6.70607981578649, 6.97173508307211, 7.0975112557987, 6.8286006127757, 
6.56835917368749, 7.07629253436335, 6.66209247382635, 6.5876785423068, 
6.59571996076717, 6.46673750407667, 6.70110916967979, 6.85058340238055, 
6.59506833206593), A4GNT = c(4.87275116647384, 4.60002647258705, 
4.99494601675408, 4.69477600401491, 4.7985530619801, 4.8349540959233, 
4.77659739577691, 4.95071744980212, 4.77868342368918, 4.8025955817638, 
4.87887068068956, 4.84258505663777, 4.84258505663777, 4.84616620572434, 
4.66050997534254)), .Names = c("Cell_Line", "A1CF", "A2M", "A2ML1", 
"A4GALT", "A4GNT"), row.names = c(NA, -15L), class = "data.frame")

gene1 <- 'A2M'

# modify gene name, dashes present in most of them
gene1.mut <- paste('`',gene1,'`',sep='')

# ggplot 
p <- ggplot(dat.c, aes_string(x='Cell_Line', y=gene1.mut, fill='Cell_Line')) + geom_bar(stat="identity") + theme(axis.text.x  = element_text(angle=90)) + ggtitle(gene1)

ggplotly(p)

这会生成如下图:

enter image description here

如您所见,带有X标签RPE1MYCN40HT的一个条未完全显示。 X轴和Y轴标题也被剪裁。如何调整X轴标签和标题以使其不被剪裁?如果可能的话,我确实想坚持使用ggplotly()而不是plot_ly()。

1 个答案:

答案 0 :(得分:3)

尝试调整plot.margins:

# ggplot 
ggplot(dat.c, aes_string(x='Cell_Line', y=gene1.mut, fill='Cell_Line')) +
  geom_bar(stat = "identity") +
  theme(axis.text.x  = element_text(angle=90),
        plot.margin = unit(c(3, 3, 3, 3), "cm")) +
  ggtitle(gene1)

当窗口较小时,Xaxis标签与X标签重叠,但是当窗口很大时,它不会。

enter image description here

enter image description here