Daniel James
Daniel James

Reputation: 1433

GGPLOT2: Adjust Font Size of Plot Title

I have This ggplot2 I made up to satisfy these conditions:

  1. Remove default background that is hash colour to be plain.
  2. Make (a) to be the plot title located within the plot area that is not close to the line (automatically).
  3. Make $\phi = .8$ to be automatically at the head of the line (still within the plot area).
  4. And sd = 1 to be automatically at the tail of the line.
  5. The four(4) Borderlines to be present.
  6. Gridlines to be a grey colour.

.

## simulate ARIMA(1, 0, 0)
set.seed(799837)
ts <- arima.sim(n = 10, model = list(ar = 0.95, order = c(1, 0, 0)), sd = 10)

gplot <- ggplot(NULL, aes(y = ts, x = seq_along(ts))) + 
  geom_line(color = "#F2AA4CFF") + 
  geom_point(color = "#101820FF") + 
  annotate("text", x = mean(seq_along(ts)), y = max(ts) * 1.1, label = "(a)")+
  annotate("text", x = min(seq_along(ts)), y = max(ts) * 1.1, label = 'paste(~phi~"=.8")', parse = TRUE )+ 
  annotate("text", x= max(seq_along(ts)), y = ts[[max(seq_along(ts))]] * 1.1, label = "sd=1") +
  xlab('Time') + 
  ylab('Series') + 
  theme_bw() +
  theme(axis.text = element_text(size = 40, angle = 0, vjust = 0.0, hjust = 0.0), #y-axis label size
        axis.title = element_text(size = 40), #x-axis label size
        axis.title.x = element_text(angle = 0, hjust = 0.5, vjust = 0.5, size = 40), # x-axis title
        axis.title.y = element_text(angle = 90, hjust = 0.5, vjust = 0.5, size = 40), # y-axis title
        plot.title = element_text(size = 40, margin = margin(t = 25, b = -20, l = 0, r = 0)),
        panel.background = element_blank()) + 
  scale_x_continuous(breaks = seq(1,10,2)) +
  scale_y_continuous(expand = c(0.0, 0.00))
gplot

ggplot2 output

I want the font of the plot title to increase. As you can see that despite setting the font of the plot title to 40 the font title refuse to increase. This question is a follow-up question from Remove Default Background Color and Make Title in Plot Zone

Upvotes: 0

Views: 188

Answers (1)

norie
norie

Reputation: 9867

Daniel

If (a) is the 'title' it's not really the title, it's an annotation.

So to change it's size do it when you add the annotation.


annotate("text", x = mean(seq_along(ts)), y = max(ts) * 1.5, label = "(a)", size = 40)

enter image description here

You might also want to resize the other annotations.

  annotate("text", x = mean(seq_along(ts)), y = max(ts) * 1.5, label = "(a)", size = 40) +
  annotate("text", x = min(seq_along(ts)), y = max(ts) * 1.5, label = 'paste(~phi~"=.8")', parse = TRUE, size = 10)+ 
  annotate("text", x= max(seq_along(ts)), y = ts[[max(seq_along(ts))]] * 1.5, label = "sd=1", size = 10)

enter image description here

Upvotes: 2

Related Questions