Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot inserting space before degree symbol on axis label

Tags:

I'd like to put a degree symbol on the x axis but the result has an extra space that I can't seem to get rid of. The text should read 'Temperature (*C)', not 'Temperature ( *C)'. I've tried two different solutions but can't seem to get rid of the space.

ggdat<-data.frame(x=rnorm(100),y=rnorm(100))

#neither of these approaches work
xlab <- expression(paste('Temperature (',~degree,'C)',sep=''))
xlab <- expression('Temperature ('*~degree*C*')')

ggplot(data=ggdat,aes(x=x,y=y)) +
  geom_point() +
  labs(x=xlab)

Scatter plot

Any help is appreciated!

Ben

like image 750
Ben Carlson Avatar asked May 31 '16 19:05

Ben Carlson


2 Answers

Do you need your xlabel to be an expression? You could try pasting it in directly. Something like this works:

set.seed(1)
ggdat<-data.frame(x=rnorm(100),y=rnorm(100))

xlab <- "Temperature (°C)"

ggplot(data=ggdat,aes(x=x,y=y)) +
  geom_point() +
  labs(x=xlab)

enter image description here

like image 142
Mike H. Avatar answered Sep 30 '22 01:09

Mike H.


When using expression() the ~ symbol makes a space and the * symbol sticks things together. See code below:

ggdat<-data.frame(x=rnorm(100),y=rnorm(100))

ylab <- expression('stuck'*'together'*'eg:'*mu*'liter')
xlab <- expression('sep'~'par'~'at'~'ed'~'eg:'~mu~'liter')

ggplot(data=ggdat,aes(x=x,y=y)) +
  geom_point() +
  labs(x=xlab,
       y=ylab)

Plot

like image 39
Robert Wagner Avatar answered Sep 30 '22 02:09

Robert Wagner