我正在尝试绘制具有n列和m行的数据框的条形图。其中一行包含类别,我希望条形图颜色基于该列所属的类别。
示例:
example = as.data.frame(matrix(1:100, nrow = 1, ncol = 5),
dimnames(list(NULL, paste0('ColumnName_', 1:5))))
category = as.data.frame(matrix(c('cat.1', 'cat.1', 'cat.2', 'cat.4', 'cat.3'),
nrow = 1, ncol = 5),
dimnames(list(NULL, paste0('ColumnName_', 1:5))))
example_df = rbind(example, category)
rownames(example_df) <- c('values 1', 'categories')
我想要一个带有x轴上的列名,the和值为1行的数据作为数据的小图,但是相对于类别行是合起来的。
谢谢。
答案 0 :(得分:1)
尝试类似这样的方法。注意数据的结构如何与ggplot配合使用。
library(ggplot)
data <- data.frame(animal = c("Cat", "Dog", "Shark", "Fish"),
home = c("land", "land", "sea", "sea"),
age = c(2,7,9,5))
ggplot(data, aes(x = animal, y = age, fill = home)) +
geom_bar(stat = "identity")
答案 1 :(得分:1)
好的,使用您的代码,并重组为整齐的格式:
example = as.data.frame(matrix(1:100, nrow = 1, ncol = 5),
dimnames(list(NULL, paste0('ColumnName_', 1:5))))
category = as.data.frame(matrix(c('cat.1', 'cat.1', 'cat.2', 'cat.4', 'cat.3'),
nrow = 1, ncol = 5),
dimnames(list(NULL, paste0('ColumnName_', 1:5))))
example_df = rbind(example, category)
rownames(example_df) <- c('values 1', 'categories')
example_df <- as.data.frame(t(example_df))
example_df["names"] <- rownames(example_df)
ggplot(example_df, aes(x = names, y = `values 1`, fill = categories)) + geom_bar(stat = "identity")