r - 在 ggplot2 中合并图例的标题中使用上标

标签 r ggplot2 legend

我正在使用 ggplot 绘制散点图,根据变量更改颜色和形状,如下面代码生成的图像所示。

a<-c(2,5,2,6,1,2,3,6)
b<-c(5,2,6,7,8,3,1,9)
c<-c(rep("n",4),rep("m",4))
data<-data.frame(a,b,c)

ggplot(data,aes(a,b,shape=c,color=c))+
  geom_point()

plot without change

颜色和形状都可以在同一个图例中看到,正如预期的那样。如果对标题进行简单的更改,我必须对形状颜色和形状都进行更改,并且效果很好。

ggplot(data,aes(a,b,shape=c,color=c))+
  geom_point()+
  labs(color="dif",shape="dif")

simple change

当我使用 expression() 编写上标时,问题就来了。如果我使用带有简单单词的表达式,它也能正常工作,但是当添加上标时,形状和颜色的图例不会再次合并。

ggplot(data,aes(a,b,shape=c,color=c))+
  geom_point()+
  labs(color=expression((ng~g^{-1})),shape=expression((ng~g^{-1})))

wrong legend

这个问题有什么解决办法吗?

最佳答案

如果将表达式存储在对象中,则可以避免这种奇怪的行为:

title_exp <- expression((ng~g^{-1}))

ggplot(df, aes(a, b, shape = c, color = c)) +
  geom_point() + 
  labs(color = title_exp, shape = title_exp)

Fixed title

关于r - 在 ggplot2 中合并图例的标题中使用上标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64116979/

相关文章:

r - 根据 bootstrap GLM 列表计算 LC50

r - 向 ggplot 添加一个点会弄乱图例

r - ggplot2如何支持循环绘图?

javascript - R Highcharter 自定义图例以仅显示某些值

r - 跨多行包装水平图例

sql - dplyr 将列粘贴到远程数据库中

r - 使用两个数据框列应用 seq.Date

r - ggplot2 中的对数色标压缩了某些图例数字

r - 如何在函数和循环中使用 data.table?

r - 使用 ggplot2 和 faceting 将每年绘制为单独的系列