R ggplot在轴标签上的度符号前插入空格

R ggplot在轴标签上的度符号前插入空格,r,ggplot2,R,Ggplot2,我想在x轴上放一个度符号,但结果有一个额外的空间,我似乎无法摆脱。文本应为“温度(*C)”,而不是“温度(*C)”。我尝试了两种不同的解决方案,但似乎无法摆脱空间 ggdat<-data.frame(x=rnorm(100),y=rnorm(100)) #neither of these approaches work xlab <- expression(paste('Temperature (',~degree,'C)',sep='')) xlab <- expressi

我想在x轴上放一个度符号,但结果有一个额外的空间,我似乎无法摆脱。文本应为“温度(*C)”,而不是“温度(*C)”。我尝试了两种不同的解决方案,但似乎无法摆脱空间

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)

ggdat是否需要xlabel作为表达式?你可以试着直接粘贴进去。类似这样的工作原理:

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)
set.seed(1)

ggdat使用
expression()
时,~符号构成一个空格,*符号将东西粘在一起。见下面的代码:

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)

ggdat
xlab谢谢大卫!您的代码去掉了前面的空间,但由于某种原因,在C之后有一个空间。但是,这是有效的:
xlab=expression(“Temperature”(degree*C))
在我的(最新)R安装中似乎不起作用。可能缺少字体?@AF7这可能是编码问题,您可以尝试
encoding(xlab)似乎没有任何作用:
encoding(xlab)@AF7以前对您有效,但现在无效?我相信这可能是一个编码问题,但如果不知道您使用的是什么操作系统(windows、linux等),就很难判断。如果您发布一个带有可复制示例的问题,可能会有所帮助,因为没有更多信息就很难进行调试。在我脑海中,如果你使用windows,另一个选择是做
Sys.setlocale(“LC_ALL”,“English”)
,但同样,发布一个新问题可能最有用,因为我在Linux上,即使几年前我尝试过,这也从未奏效。thnaks,我会尽量找点时间发布一个问题