#r #ggplot2
#r #ggplot2
Вопрос:
Как мне закодировать сгруппированную столбчатую диаграмму, где я могу отобразить 2 значения для каждого штамма: один столбец будет представлять объем клеток для диеты с железом, а другой столбец будет представлять объем клеток для обычной диеты?
Моя таблица Excel выглядит примерно так, где в ней несколько столбцов, но я хочу выборочно составить график на основе 3 столбцов (деформация, CV Iron, CV Normal):
Strain CV Iron CV Normal
A 23 17
B 10 15
...
Я хочу, чтобы моя сгруппированная гистограмма выглядела примерно так:
Ось x — это «Штамм», а ось y будет «CV», где каждый штамм имеет 2 столбца: один для «CV железа» и один для «CV Нормальный», а цветовое кодирование столбцов будет основано на диете (CV железа или CV нормальный).
Ответ №1:
Я буду использовать пример:
df1 <- data.frame(Strain = c("A","B","C","D"),
CVIron = c(12,15,16,21),
CVNormal = c(10,12,18,9))
head(df1)
Strain CVIron CVNormal
1 A 12 10
2 B 15 12
3 C 16 18
4 D 21 9
Прежде всего, вы должны объединить два столбца CV в один. Вы можете использовать функцию melt в пакете reshape2.
library(reshape2)
df2 <- melt(df1, id = "Strain")
head(df2)
Strain variable value
1 A CVIron 12
2 B CVIron 15
3 C CVIron 16
4 D CVIron 21
5 A CVNormal 10
6 B CVNormal 12
7 C CVNormal 18
8 D CVNormal 9
А затем вы можете легко применить функцию ggplot.
library(ggplot2)
ggplot(data=df2, aes(x=variable, y=value, fill=Strain))
geom_bar(stat="identity", position=position_dodge())