ggplot绘制每周考勤汇总数据折线/柱状图异常问题求助
问题原因及解决方法
1. 数据集构造错误
你写的df <- as.data.frame(week,att)不符合R的函数参数规则,as.data.frame()的第二个参数是行名配置项,你这么写生成的数据框只有week一列,根本没有存入考勤值att,这是你画图异常的核心原因。
正确的数据集构造代码:
week <- c("09-01-20","09-07-20", "09-21-20") att <- c(80, 140, 500) df <- data.frame(week = week, att = att)
2. 原有绘图代码的错误点
- 第一段代码里
y="att"加了引号,相当于把固定字符串"att"作为y轴值,所以所有柱子/点的高度完全相同 - geom_line对离散型的x轴(你这里的week是字符串分类变量)需要额外指定
group = 1参数才能正常连线,且geom_line不需要fill参数,fill是面积/柱子的填充配置项 - geom_bar默认统计的是x轴类别的出现次数,要直接用att列的数值作为柱子高度,需要指定
stat = "identity"
3. 可正常运行的绘图代码
折线图示例
library(ggplot2) ggplot(df, aes(x = week, y = att, group = 1)) + geom_line(color = "blue") + geom_point() # 加数据点更清晰
柱状图示例
ggplot(df, aes(x = week, y = att)) + geom_bar(stat = "identity", fill = "steelblue")
内容的提问来源于stack exchange,提问作者xian_q1
相关产品推荐
相关产品推荐

