Нарисуйте график, чтобы подчеркнуть разницу текущих и ожидаемых значений в R - PullRequest
1 голос
/ 06 марта 2020

У меня есть набор данных для ожидаемого и текущего дохода:

 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

Я хотел бы показать распределение ожидаемого net дохода по отношению к текущему net доходу (диаграммы + выводы) , Я рисую гистограммы:

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

Но это не показывает соотношение правильно. Я хотел бы поместить идентификаторы в координату x и текущую и ожидаемую зарплату по оси y (одна может быть линией над гистограммой), чтобы подчеркнуть различия между ожидаемой и текущей зарплатой, основанной на человеке. Как мне это сделать?

1 Ответ

3 голосов
/ 06 марта 2020

Я бы использовал точечную диаграмму для построения различий:

ИЛЛЮСТРАТИВНЫЕ ДАННЫЕ :

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)

РЕЗУЛЬТАТ :

(очевидно, это может быть очень приукрашено) enter image description here

РЕДАКТИРОВАТЬ :

Как насчет использования барплота?

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)

Результат :

enter image description here

...