Ancestry <- data.frame(Race = c("European", "African American", "Asian", "Hispanic", "Other"), Proportion = c(40, 30, 10, 15, 5))
Ancestry %>%
ggplot(aes(y = Proportion, fill = Race)) +
geom_bar(stat="identity", colour="white")
运行上面的代码会给我以下错误:
Warning in min(x, na.rm = na.rm) :
no non-missing arguments to min; returning Inf
Warning in max(x, na.rm = na.rm) :
no non-missing arguments to max; returning -Inf
Warning in min(diff(sort(x))) :
no non-missing arguments to min; returning Inf
Warning in x - width/2 :
longer object length is not a multiple of shorter object length
Warning in x + width/2 :
longer object length is not a multiple of shorter object length
Error in data.frame(list(y = c(40, 30, 10, 15, 5), fill = c(3L, 1L, 2L, :
arguments imply differing number of rows: 5, 2947
我正在寻找创建类似于此的堆叠式条形图:
答案 0 :(得分:4)
您需要为x轴创建一个虚拟变量。然后使用类似于geom_col
的{{1}}来绘制堆叠的条形图,再用geom_bar(stat = "identity")
将文本放在条形上。
您显示的情节使用了geom_text
软件包中的theme_economist
。
ggthemes
library(tidyverse)
Ancestry <- data.frame(Race = c("European", "African American", "Asian", "Hispanic", "Other"),
Proportion = c(40, 30, 10, 15, 5))
Ancestry <- Ancestry %>%
mutate(Year = "2006")
ggplot(Ancestry, aes(x = Year, y = Proportion, fill = Race)) +
geom_col() +
geom_text(aes(label = paste0(Proportion, "%")),
position = position_stack(vjust = 0.5)) +
scale_fill_brewer(palette = "Set2") +
theme_minimal(base_size = 16) +
ylab("Percentage") +
xlab(NULL)
由reprex package(v0.2.0.9000)创建于2018-08-26。
答案 1 :(得分:1)
我们可以创建一个虚拟变量以将所有小肠分组为一组,然后使用// ...
// 'Items' is the Mongoose collection model.
const itemResult = await Items.find({}).exec();
if(itemResult.length === 0) {
const itemsSeedDataRaw = fs.readFileSync(`${__dirname}/data/items.json`, 'utf8');
const itemsSeedData = EJSON.parse(itemsSeedDataRaw);
await Items.insertMany(itemsSeedData);
}
// ...
创建堆积的条形图,并使用geom_bar
命名geom_text
。
Proportions