绘制图表以强调 R 中当前值和预期值的差异

Draw a graph to emphasize the difference current and expected values in R

我有一个预期收入和当前收入的数据集:

 id currentsalary expectedsalary
1   1            NA           1500
2   2            NA           3000
3   3            NA             NA
4   4            NA             NA
5   5            NA           1500
6   6          1500           3000
7   7            NA           1500
8   8            NA           5000
9   9          1000           1500
10 10          3000           5000

我想显示与当前净收入相关的预期净收入分布(图表 + 结论)。我绘制直方图:

hist(df$expectedsalary, col="pink", xlab="salary")
hist(df$currentsalary, col="blue", add=T)

但它没有正确显示关系。我想将 id 放在 x 坐标和 y 轴上的当前和预期薪水(一个可能是直方图上的一条线)以强调基于人的预期薪水和当前薪水之间的差异。我该怎么做?

我会使用点图来绘制差异:

说明性数据:

set.seed(122)
df <- data.frame(
  id = 1:10,
  exp = sample(1000:5000, 10),
  curr = sample(800: 4500, 10)
)

解决方案:

计算差值:

df$diff <- df$curr - df$exp

绘制点图:

dotchart(df$diff, labels = df$id, main = "Difference in current v expected income",
         col = ifelse(df$diff < 0, "red", "blue"), density = 50, angle = 90)
abline(v = 0)

结果:

(很明显,这个可以大大点缀)

编辑:

使用条形图怎么样?

barplot(df$diff, names = df$id, xlab = "ID", ylab = "Difference", 
        main = "Difference in current v expected income",
        col = ifelse(df$diff < 0, "red", "blue"), density = 50, angle = 90)
legend("topright", c("Current > Expected income", "Current < Expected income"), 
       fill = c("blue", "red"),
       cex = 0.8)

结果: