Использование ggplot для создания профессионально выглядящего графика - PullRequest
0 голосов
/ 25 марта 2019

Я пытался использовать ggplot2 для создания профессионально выглядящего графика, но у меня возникли некоторые проблемы со многими вещами.Я хотел бы добавить цвет к точкам данных, добавить даты на оси X и создать линию наилучшего соответствия или что-то подобное, если это возможно.Я искал в Stack Exchange и Google в целом, чтобы попытаться решить эту проблему, но безрезультатно.Я использую «Коэффициент участия гражданской рабочей силы: 20 лет и старше, чернокожие или афроамериканцы» из Федерального резервного банка Сент-Луиса (FRED).

Я использую RStudio, и я импортировал данные из LNS11300031 , а затем использовал функцию read.csv() для считывания их в RStudio.Сначала я использовал функцию plot() для построения графика данных, но я хочу использовать функцию ggplot() для создания графика более привлекательного вида, но когда я создаю график, точки данных выглядят очень непрозрачными, размытыми и облачными, и тамнет меток на оси х.Я хотел бы добавить цвет и линию наилучшего соответствия, но я не знаю, как это сделать.

Это код, который я использовал для создания графика без меток оси x:

ggplot(data = labor, mapping = aes(x = labor$DATE, y = labor$LNS11300031)) + geom_point(alpha = 0.1)

Это график, который создал мой код:

enter image description here

Вот некоторые примеры данных (рабочая сила - это переменная, которую я использовал для хранения данных с сайта FRED ):

head(labor)    DATE        LNS11300031
  1         1972-01-01        77.6
  2         1972-02-01        78.3
  3         1972-03-01        78.7
  4         1972-04-01        78.6
  5         1972-05-01        78.7
  6         1972-06-01        79.4

Iхотел бы изменить имя переменной LNS11300031 на коэффициент участия в рабочей силе

Дополнительная информация о данных:

str(labor)
'data.frame':   566 obs. of  2 variables:
 $ DATE       : Factor w/ 566 levels "1972-01-01","1972-02-01",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ LNS11300031: num  77.6 78.3 78.7 78.6 78.7 79.4 78.8 78.7 78.6 78.1 ...

Мне бы хотелось, чтобы код создавал более четкие точки данных с цветом илиния тренда и возможность иметь ось X с соответствующими датами.

1 Ответ

2 голосов
/ 25 марта 2019

Вот основная попытка охватить все 3 желаемых улучшения:

  • Более четкие точки: не устанавливайте альфу слишком низко! Немного альфа хороша для перекрывающихся точек, но alpha = 0.1 делает их слишком размытыми.
  • Цвет: R понимает простые названия цветов, такие как «красный», но также шестнадцатеричные цветовые коды. Выберите любые цвета, которые вы хотите.
  • Линия тренда: легко добавить с stat_smooth(). Я использовал method='lm', который дает прямую линию линейной регрессии, но есть более гибкие альтернативы.
  • Метки даты на оси x: убедитесь, что для вашего столбца DATE указан тип Date, и используйте scale_x_date() для настройки меток.
quantmod::getSymbols("LNS11300031", src="FRED")
# Your data is available from the quantmod package

labor = LNS11300031 %>%
    as.data.frame() %>%
    rownames_to_column(var = "DATE") %>%
    # Make sure DATE is a Date column
    mutate(DATE = as.Date(DATE))

# Generally, you don't use data$column syntax within ggplot, 
#   just give the column name
ggplot(data = labor, mapping = aes(x = DATE, y = LNS11300031)) + 
    geom_point(alpha = 0.7, colour = "#B07AA1") +
    stat_smooth(method = "lm", colour = "#E15759", se = FALSE) +
    scale_x_date(date_breaks = "5 years", date_labels = "%Y") +
    theme_minimal()

Выход:

Plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...