преобразование в правильный формат для печати - PullRequest
0 голосов
/ 01 ноября 2018

Rookie R человек здесь, пытаясь построить У меня есть:

str(chrs)

chr [1:391048] "MT" "MT" "MT" "MT" "MT" "MT" "MT" "MT" "MT" "MT" 

str(comps2$X1.7)

num [1:391048] 0.0147 0.019 0.0301 0.032 0.0492 

Я не уверен, как преобразовать chrs в соответствующий формат для plot(chrs,comps2$X1.7, type="l")

Я пробовал chrs <- as.numeric(as.character(chrs)) и chrs <- as.numeric(chrs), но это только вводит NA

Я хочу, чтобы график выглядел как первый ниже, но с метками оси X в качестве второго графика, что я получаю при использовании plot plot(as.factor(chrs), comps2$X1.7, ylim = c(0,1), type = "l")

Я знаю, что есть простое решение. Любая помощь очень ценится.

Очень здорово было бы, если бы кто-нибудь знал, как изменить фон с белого на серый при каждом изменении метки оси X, но сначала предпочел бы иметь рабочий график:)

enter image description here

enter image description here

1 Ответ

0 голосов
/ 01 ноября 2018

Я использовал пакет ggplot2. Сначала вы должны определить dataframe, потому что функция ggplot принимает в качестве входных данных фрейм данных. Затем вы можете определить значения x как индексы от 1 до максимального индекса вашего вектора значений, а затем изменить метки на оси x с помощью scale_x_continous:

library(ggplot2)
df <- data.frame(chrs = chrs, values = comps2$X1.7, color = 1:2, stringsAsFactors = FALSE)

ggplot(df, aes(x = 1:nrow(df), y = values)) + 
 geom_line() + 
 scale_x_continuous(breaks = 1:length(df$chrs),
                  labels = df$chrs) 

РЕДАКТИРОВАТЬ: Чтобы изменить цвета, просто добавьте индикатор цвета к кадру данных и чередуйте его между 1 и 2. Затем вы можете передать его в эстетику функции geom_line (они должны быть factor в данном случае) и определите свои цвета в scale_color_manual.

library(ggplot2)
df <- data.frame(chrs = chrs, values = comps2$X1.7, color = 1:2, stringsAsFactors = FALSE)

ggplot(df, aes(x = 1:nrow(df), y = values)) + 
 geom_line(aes(col = as.factor(df$color))) + 
 scale_x_continuous(breaks = 1:length(df$chrs),
                  labels = df$chrs) +
 scale_color_manual(values = c("black", "grey")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...