绘制图表以强调 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)
结果:
我有一个预期收入和当前收入的数据集:
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)
结果: