如下所示的数据框df
,我尝试为其中一个参数创建折线图 - Income
- 在实际数据中还有其他参数。
text <- "
Parameter,Company, Qtr, Value
Income, Comp1, Q1FY18, 100
Income, Comp1, Q2FY18, 110
Income, Comp1, Q3FY18, 130
Income, Comp2, Q1FY18, 60
Income, Comp2, Q2FY18, 70
Income, Comp2, Q3FY18, 90
"
df <- read.table(textConnection(text), sep=",", header = T,
stringsAsFactors = F)
我创建了一个函数,以便我可以重复使用它 - 该函数采用数据框和一组指标并绘制它们
plotMetricsLine <- function(df, metrics) {
df <- df %>%
filter(Parameter %in% metrics)
p <- ggplot(data=df, aes(x=Qtr, y=Value,color = Company)) +
geom_line(size=1)
return(p)
}
当我通过调用plotMetricsLine(df, "Income")
使用该功能时 - 它正在给出一个空图,如下图所示。这里出了什么问题?
答案 0 :(得分:0)
您还需要在group
中设置aes
,而不仅仅是颜色。这个功能有效:
plotMetricsLine <- function(df, metrics) {
df <- df%>%filter(Parameter %in% metrics)
p <-ggplot(data=df, aes(x=Qtr, y=Value,group = as.factor(Company),colour=Company)) +
geom_line(size=1)
return(p)
}
plotMetricsLine(df, "Income")
请注意colour
,因此根据因素