Воспроизвести указанный c график в R - PullRequest
0 голосов
/ 29 апреля 2020

Я хотел бы воспроизвести график ниже.

У меня есть все данные. Но я не могу найти код, близкий к тому, что я ожидаю.

У кого-нибудь есть идея? Большое спасибо


plot <- ggplot(df_base, aes(x = df_base$time) +
  geom_line(aes(y = df_base$capital, col = "red")) +
    geom_line(aes(y = df_base$capital_steady_state, col = "blue")) +
    ggtitle(paste(' Figure 1: ',  names(df_base)[11], sep='')) +
    theme_bw() + 
    theme(axis.title.x=element_blank(), axis.title.y=element_blank(), text=element_text(family="Times New Roman"), plot.title = element_text(hjust = 0.5), legend.position="none" ) + 
    coord_cartesian(xlim =c(0, 100), ylim = c(min(df_base[, 11]), max(df_base[, 11])))

enter image description here

1 Ответ

0 голосов
/ 29 апреля 2020

Поскольку вы не предоставили пример своих данных (вывод из dput(df_base) был бы полезен для точного воспроизведения), я предполагаю немного: для использования ggplot данные должны быть в "аккуратном" формате (см. здесь для деталей) - вот пример, как это может работать:

library(tidyverse)

# create some dummy df_base that should have same structure like your data:
df_base <- tibble(time = seq(0, 100, by = 10),
            capital = seq(1, -9, by = -1),
            capital_steady_state = rep(0.5, 11))

# reshape data so that there is one value column and one column carrying the 'capital_type' - ggplot will use this variable to determine colour:
plot_df <- df_base %>% pivot_longer(cols = c(capital, capital_steady_state), names_to = "capital_type")

#draw:
ggplot(plot_df, aes(x = time, y = value, colour = capital_type)) +
    geom_line() +
    scale_colour_manual(values = c("red", "blue")) +
    ggtitle("Figure 11: Capital") +
    theme_bw() + 
        theme(axis.title.x=element_blank(), axis.title.y=element_blank(), text=element_text(family="Times New Roman"), plot.title = element_text(hjust = 0.5), legend.position="none" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...