ggplot2 中带有分类值的折线图?

Line chart with categorical values in ggplot2?

我在构建折线图时遇到问题。这是我的折线图的输出。为什么输出是这样的,我的意思是线条不接触(不连续)。也许问题与我的数据格式或类型有关? 折线图代码: plotLine <- ggplot(sales_clean,aes(x=sales_clean$Date,y=sales_clean$Net_Rev,na.rm = FALSE)) plotLine + geom_line()

1) 问题是 sales_clean$Yearfactor。 2)ggplot将您的x值解释为分类,将y值解释为连续和聚合值到条形图中(而不是条形图)。 请看模拟:

library(ggplot2)
set.seed(123)
sales_clean <- data.frame(Year = rep(factor(2014:2018), 1000), Net_Rev = abs(rnorm(5000)))
plotLine <- ggplot(sales_clean, aes(Year, Net_Rev, na.rm = FALSE)) 
plotLine + geom_line()

3) 一种解决方案是将因子转换为数值并按年聚合。 请看结果:

sales_clean$Year_num <- as.numeric(as.character(sales_clean$Year))
sales_clean_plot <- aggregate(Net_Rev ~ Year_num, sales_clean, sum)

plotLine <- ggplot(sales_clean_plot, aes(Year_num, Net_Rev, na.rm = FALSE)) 
plotLine + geom_line()

4) 最好不要在ggplotaes()中使用$,因为data.frame的名字已经在[=的第一个参数中提到了17=]。代码变得蹩脚且难以阅读。