Put y axis title in top left corner of graph
Put it in the main plot title:
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ggtitle("very long label") +
theme(plot.title = element_text(hjust = 0))
You can shove it slightly more to the left if you like using negative hjust
values, although if you go too far the label will be clipped. In that case you might try playing with the plot.margin
:
ggplot(data = xy) +
geom_point(aes(x = x, y = y)) +
ggtitle("very long label") +
theme(plot.title = element_text(hjust = -0.3),
plot.margin = rep(grid::unit(0.75,"in"),4))
So obviously this makes it difficult to add an actual title to the graph. You can always annotate manually using something like:
grid.text("Actual Title",y = unit(0.95,"npc"))
Or, vice-versa, use grid.text
for the y label.