在ggplot2中更改传奇标题时出现的鬼传奇?

时间:2016-08-18 04:56:19

标签: r plot ggplot2 legend

我一直试图在ggplot2线条情节中调整我的传奇标题,但是当我这样做时,我会得到一个“鬼魂传说”。出现在真实的下方。我使用以下代码调整我的图例部分(coluor,线型和符号顺序):

scale_color_manual(values = c("#FF6600", "green4", "#0099FF")) +                 
  scale_linetype_manual(values=c("solid", "solid", "solid")) +  
  scale_shape_manual(values = c(16, 16, 16)) +   

这是一个与我的图表匹配的可爱传奇。但是,当我尝试使用此代码添加标题时:

labs(linetype='title')+

我在下方显示另一个图例(因此两者同时出现在图表上),标题正确但没有以前的格式。显然,我正在编写一个单独的图例,但我无法解决它!

另外,我想给出我的传奇的真实标题需要下标' 2'对于二氧化碳,我已经使用以下内容来解释其他标题:

expression(CO[2]~concentration~(ppm))  

我想提一下,万一它会改变一切。

Aaaaand在我看到它时,我还想将图例方向更改为水平而不是垂直列表,并将其移动到绘图空间的一角(尝试legend.position = c(0.9, 0.8)已经有效之前但不是在这种情况下)。

我的问题是,当我尝试每一个新事物时,错误复杂化,我无法继续前进。

我意识到这篇文章远非优雅,但任何帮助都会非常感激。对不起,我没有提供任何示例代码,我是R新手,完全游泳。
提前谢谢!

1 个答案:

答案 0 :(得分:1)

你可能太新了,无法创建一个可重现的例子,所以这是一个尝试和答案:

library(ggplot2)
set.seed(100)
df1 <- subset(diamonds, cut %in% (levels(diamonds$cut)[1:3]))[sample(100),]
p <- ggplot(df1, aes(x=carat, y=price, colour=cut, shape=cut, linetype=cut, group=cut))
p <- p + geom_line() 
p + scale_color_manual(values = c("#FF6600", "green4", "#0099FF")) +                 
  scale_linetype_manual(values=c("solid", "solid", "solid")) +  
  scale_shape_manual(values = c(16, 16, 16)) +
  labs(linetype='title')

enter image description here

这是鬼传奇&#34;?

这是一个解决方法。标题也应该放在其他美学上:

p + scale_color_manual(values = c("#FF6600", "green4", "#0099FF")) +                 
  scale_linetype_manual(values=c("solid", "solid", "solid")) +  
  scale_shape_manual(values = c(16, 16, 16)) +
  labs(linetype=expression(CO[2]~concentration~(ppm)),
       colour=expression(CO[2]~concentration~(ppm)),
       shape=expression(CO[2]~concentration~(ppm)))

enter image description here

额外的传奇已经消失。这是因为名字不同而发生的。我们重复了所有美学的名称。

较短的选项是将guide="none"添加到其他比例:

p + scale_color_manual(name=expression(CO[2]~concentration~(ppm)),
                       values = c("#FF6600", "green4", "#0099FF")) +                 
  scale_linetype_manual(guide="none",values=c("solid", "solid", "solid")) +  
  scale_shape_manual(guide="none",values = c(16, 16, 16))