【发布时间】:2020-08-05 08:54:37
【问题描述】:
我有以下数据框:
#> region product delivery price
#> 1 Japan laptop yes 500
#> 2 Japan laptop no 400
#> 3 Japan printer n/a 200
#> 4 America laptop no 600
#> 5 America laptop yes 620
#> 6 America laptop yes 300
#> 7 America printer n/a 300
#> 8 China laptop yes 400
转载于此:
structure(list(region = c("Japan", "Japan", "Japan", "America",
"America", "America", "America", "China"), product = c("laptop",
"laptop", "printer", "laptop", "laptop", "laptop", "printer",
"laptop"), delivery = c("yes", "no", "n/a", "no", "yes", "yes",
"n/a", "yes"), price = c(500, 400, 200, 600, 620, 300, 300, 400
)), row.names = c(NA, -8L), class = c("tbl_df", "tbl", "data.frame"
))
下面的代码会生成一个条形图,比较每个地区的笔记本电脑和打印机的价格。笔记本电脑有交付选项,因此笔记本电脑列堆叠有“否”区域和“是”区域。
ggplot(df, aes(product, y = price, fill = delivery)) +
geom_col(position = "stack") +
facet_grid(.~region, switch = "x")
在它们各自的列中,我需要按地区显示笔记本电脑和打印机的总价格,对于笔记本电脑,我还想查看带和不带交付的笔记本电脑的不带价格。我试过了:
geom_text(aes(label = price), size = 3, hjust = 0.5, vjust = 3, position = "stack")
但是,这只是在每列中显示所有单独的价格。
【问题讨论】:
-
你能附上你的代码生成的图吗?
-
完成,数据集也稍作更新
标签: r ggplot2 charts stacked-chart