GGPlot的scale_color_manual显示错误

时间:2016-12-06 17:58:38

标签: r ggplot2

有两个类似问题的问题,但它们不起作用,所以请不要标记为dublicate。

我得到了一个普通的ggplot,其中包含一组值和3条水平线,但是当我使用scale_colour_manual时它会返回

  

c中的错误(“Total Tweets` =”#f04546“,Mean =”#3591d1“,`标准   Deviation` =“#62c76b”):未使用的参数(`Total Tweets` =   “#f04546”,意思是=“#3591d1”,“标准偏差”=“#62c76b”)

Data<-data.frame("Date"=as.Date(16200:16499),"Total"=rnorm(300,4500,50))
Mean<-mean(Data$Total)
SD1<-Mean-sd(Data$Total)
SD2<-Mean+sd(Data$Total)

TotalDay <- ggplot(data = Data, aes(x=Date, y=Total,colour=Legend)) + 
  geom_line(aes(y=Total, colour="Total Tweets")) 

TotalDay + ggtitle("Tweets per Day") +labs(x="Date",y="Tweets") +
  theme(plot.title = element_text(color="#666666", face="bold", size=18, hjust=0)) +
  theme(axis.title = element_text(color="#666666", face="bold", size=13)) +
  geom_hline(aes(yintercept =Mean,colour="Mean")) + 
  geom_hline(aes(yintercept =(SD1), 
                 colour="Standard Deviation"))+
  geom_hline(aes(yintercept =(SD2), 
                 colour="Standard Deviation"))

TotalDay + scale_color_manual(name="Legend",
                              values=c("Total Tweets"="#f04546","Mean"="#3591d1","Standard Deviation"="#62c76b"))

所以只是最后一行不起作用。 我使用这些包(我不知道这是否有所不同):

library(stringr)
library(dplyr)
library(Ryacas)
library(quantmod)
library(data.table)
library(tm)
library(lubridate)
library(ggplot2)
library(extrafont)

1 个答案:

答案 0 :(得分:0)

在第二步中,您实际上并没有将绘图的结果重新分配回TotalDay,所以当您到达scale_color_manual时,您没有线路可以实际构建一个图例对

Data<-data.frame("Date"=as.Date(16200:16499),"Total"=rnorm(300,4500,50))
Mean<-mean(Data$Total)
SD1<-Mean-sd(Data$Total)
SD2<-Mean+sd(Data$Total)

TotalDay <- ggplot(data = Data, aes(x=Date, y=Total,colour=Legend)) + 
  geom_line(aes(y=Total, colour="Total Tweets")) 

TotalDay <- TotalDay + ggtitle("Tweets per Day") +labs(x="Date",y="Tweets") +
  theme(plot.title = element_text(color="#666666", face="bold", size=18, hjust=0)) +
  theme(axis.title = element_text(color="#666666", face="bold", size=13)) +
  geom_hline(aes(yintercept =Mean,colour="Mean")) + 
  geom_hline(aes(yintercept =(SD1), 
                 colour="Standard Deviation"))+
  geom_hline(aes(yintercept =(SD2), 
                 colour="Standard Deviation"))

TotalDay + scale_color_manual(name="Legend",
                              values=c("Total Tweets"="#f04546","Mean"="#3591d1","Standard Deviation"="#62c76b"))

enter image description here