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

时间:2018-07-13 07:49:40

标签: r ggplot2 linechart categorical-data

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

result(line chart)

1 个答案:

答案 0 :(得分:0)

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()

Line bars - Year as a factor

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()

line graph

4)最好不要在$的{​​{1}}中使用ggplot,因为data.frame名称已经在aes()的第一个参数中提到。代码变得凌乱且难以阅读。