我有一个数据显示2013年和2014年的总销售额。
yr_sales
Year sum_amount
1 2013 277125.0
2 2014 331721.8
我希望在X上绘制一个条形图,在Y轴上绘制销售。
ggplot(yr_sales, aes(x=Year, y=sum_amount)) +
geom_bar(stat="identity", fill="lightblue", colour="black")
但我得到的只是乱糟糟的X轴:
我的预期输出是(正如我在MS Excel中得到的)
答案 0 :(得分:2)
您的年份被视为数字变量。您希望显示数据的方式要求它是一个因素(即,它具有离散值,并且不能有一年2013.5
)。
设置as.factor(Year)
以获得x轴的美学映射:
ggplot(yr_sales, aes(x=as.factor(Year), y=sum_amount)) +
geom_bar(stat="identity", fill="lightblue", colour="black")
您也可以更改数据本身,但如果您希望将年份作为实际数字变量,这可能会导致问题:
yr_sales$Year = as.factor(yr_sales$Year)
如果您执行了上述操作,则无需在美学映射中使用as.factor
。
答案 1 :(得分:0)
使用@slhck给出的答案我做了以下事情:
ggplot(yr_sales, aes(x=as.factor(Year), y=sum_amount,width=0.4)) +
geom_bar(stat="identity", fill="blue", colour="black")
我的输出很完美......