Как я могу создать линейный график с помощью ggplot, если у меня нет заголовка в первом столбце?

#r #ggplot2

#r #ggplot2

Вопрос:

Мой код приведен ниже, где я должен ввести место для «x»? Также, как бы я это сделал, если бы я хотел отобразить несколько тикеров в одном файле, отображаемых в разных столбцах?

ggplot(portfolioprices,aes(x = , y = INO)) geom_line()

Вот как выглядят данные: Dataset

Я хочу, чтобы он выглядел так, но с метками: График, созданный с помощью R

Комментарии:

1. ggplot(portfolioprices,aes(x = seq_along(INO), y = INO)) geom_line() (или с использованием seq_len(nrow(portfolioprices)) того же эффекта).

Ответ №1:

Получение доступа к вашим данным и типу графика, который вы собираетесь построить, облегчило мне понимание вашей цели, и теперь я думаю, что нашел решение для вашего вопроса. Попробуйте воспроизвести следующий код:

 # load environment
library(lubridate)
library(ggplot2)
library(reshape2)
# define dataframe
df = data.frame(
  date = c('1/3/2020', '1/6/2020', '1/7/2020', '1/8/2020', '1/9/2020'),
  ino = c(2.98, 3.14, 3.15, 3.14, 3.1),
  mrna = c(18.89, 18.13, 17.78, 17.98, 18.4),
  nio = c(3.83, 3.68, 3.24, 3.39, 3.46),
  fcntx = c(13.8, 13.92, 13.9, 14, 14.12)
)
# transform date strings to date class
df$date = dmy(df$date)
class(df$date)
# tidy the dataframe to plot it
df = melt(df, id.vars = 1, measure.vars = 2:5)
# plot the graph
ggplot(df, aes(x = date, y = value, colour = variable))  
  geom_line(size = 1.5)  
  scale_x_date(date_breaks = '1 month', date_labels = '%m/%Y')
  

Вот результат:

введите описание изображения здесь

Дайте мне знать, тот ли это график, который вы ищете.

Комментарии:

1. вы можете отредактировать свой последний пост и добавить фрейм данных, который вы использовали для построения этих графиков. трудно воспроизвести вашу проблему без какого-либо фрейма данных..

2. Я пока не могу вставлять изображения, поэтому он создал ссылку, если вы можете взглянуть?

3. Это здорово @ShreddedScientist! Теперь я могу вам помочь. Я отредактировал свой последний ответ, проверьте его.

4. Как мне назначить заголовок даты столбцу даты, если в файле его нет? Данные, которые я извлекаю, поступают из файла CSV. Это мой код ниже, и в нем говорится об ошибке: Ошибка в $<-.data.frame ( *tmp* , дата, значение = числовое(0)) : замена имеет 0 строк, данные имеют 171 df = data.frame(portfolioprices) преобразование строк даты в класс date класс df$ date = dmy(df$ date) (df $ date) (df$ date)

5. df$date = dmy(df$date); class(df$date) делает именно то, что вы хотите, он преобразует объекты ‘character’ в ‘date’. вам просто нужно установить библиотеку lubridate перед (с помощью install.packages('lubridate') ), а затем загрузить библиотеку (с помощью library(lubridate) )