#r #ggplot2
#r #ggplot2
Вопрос:
У меня есть набор данных с 10 генами. Я хочу построить гены вдоль оси x, и в 1 из 2 оценок, которые у меня есть для генов, должно быть 2 графика.
Например, мои данные выглядят так:
Gene1 label4 label3
RP11-983P164 0.2678077 0.2119513
SLC25A20 0.2644568 0.2586816
GLS 0.2560175 0.2631010
IKZF4 0.2468294 0.2189585
NRIP3 0.2446390 0.2170968
SENP1 0.2372014 0.2724868
SLC27A6 0.2321821 0.2218227
SRFBP1 0.2293986 0.2688244
OBFC1 0.2279012 0.2187441
STEAP2 0.2239941 0.2001475
Я хочу создать гистограмму, отображающую результаты как для label4
каждого гена, так и label3
для каждого гена, но я изо всех сил пытаюсь найти похожие примеры кода, которые работают с моими данными. Я пробовал подобные вещи:
df %>%
gather("label3", "label4",-Gene1) %>%
ggplot(aes(Gene1, label3, fill = label3))
ggplot(aes(Gene1, label4, fill = label4))
geom_bar(position = "dodge", stat = "identity")
theme_bw()
но это вообще не работает, любая помощь будет оценена.
Input data:
dput(dt)
structure(list(Gene1 = c("RP11-983P164", "SLC25A20", "GLS", "IKZF4",
"NRIP3", "SENP1", "SLC27A6", "SRFBP1", "OBFC1", "STEAP2"), label4 = c(0.267807692,
0.264456809, 0.256017476, 0.24682942, 0.244638979, 0.237201422,
0.232182056, 0.229398578, 0.227901191, 0.223994106), label3 = c(0.211951256,
0.258681595, 0.263101041, 0.218958497, 0.217096806, 0.272486806,
0.221822709, 0.268824399, 0.218744099, 0.20014748)), row.names = c(NA,
-10L), class = c("data.table", "data.frame")
Ответ №1:
Это то, что вы ищете?
library(tidyverse)
df <- data.frame(structure(list(Gene1 = c("RP11-983P164", "SLC25A20", "GLS", "IKZF4",
"NRIP3", "SENP1", "SLC27A6", "SRFBP1", "OBFC1", "STEAP2"),
label4 = c(0.267807692, 0.264456809, 0.256017476, 0.24682942, 0.244638979, 0.237201422,
0.232182056, 0.229398578, 0.227901191, 0.223994106),
label3 = c(0.211951256, 0.258681595, 0.263101041, 0.218958497, 0.217096806, 0.272486806,
0.221822709, 0.268824399, 0.218744099, 0.20014748)),
row.names = c(NA, -10L), class = c("data.table", "data.frame")))
df %>%
pivot_longer(cols=c(-Gene1)) %>%
ggplot(., aes(Gene1, value, group=name, fill=name))
geom_col(position = 'dodge')