3

I am having certain issues while converting ggplot2 plots to plotly plots. Here is my code:

> 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)

This generates a figure like this:

enter image description here

As you can see, the one bar with X label RPE1MYCN40HT is not shown completely. Also the X and Y axis titles are clipped. How do I adjust the X axis labels and title so that they are not clipped? I do want to stick with ggplotly() instead of plot_ly() if that is possible.

zx8754
  • 52,746
  • 12
  • 114
  • 209
Komal Rathi
  • 4,164
  • 13
  • 60
  • 98

1 Answers1

3

Try to adjust 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)

When window is small then Xaxis label is overlapped with X labels, but when window is big it doesn't.

enter image description here

enter image description here

zx8754
  • 52,746
  • 12
  • 114
  • 209