ggplot 条形图按组给出百分比
ggplot barplot given percentage by group
我正在尝试构建一个已经给出百分比的条形图。我认为这是一个基本问题,但我无法在互联网上找到任何东西。我的数据是这样的:
我要打印的情节是这样的:
给定 overRetail
和 belowRetail
,每组条形图(即每年)的条形图都需要达到 100%。
我没有任何代码可以显示:我最接近的是不计算百分比,而是使用绝对值。
我想知道:真的是我要找的条形图吗?也许其他类型的情节更适合我想要展示的内容。
提前致谢!
重塑数据后,您想要制作的情节可能会更容易。考虑每年一行,而不是每年一行,并且 below/over.
# Setup Data
require(tidyverse)
releaseDate <- 2014:2021
belowRetail <- c(24.20635, 25.09804, 35.63403, 31.06996, 27.76025, 28.59097, 31.00559, 30.89888)
overRetail <- c(75.79365, 74.90196, 64.36597, 68.93004, 72.23975, 71.40903, 68.99441, 69.10112)
retail <- tibble(releaseDate = releaseDate, belowRetail = belowRetail, overRetail = overRetail)
您可以使用 dplyr 中的 pivot_longer 重塑数据。
retail <- pivot_longer(data = retail, cols = -releaseDate, names_to = "name")
然后,您可以使用geom_bar,在美学(aes)中指定名称。另请注意,必须添加 position = "fill" 和 stat = "identity"。第一个选项使所有条形为 100%,第二个选项使用数据值而不是默认计数。
ggplot(data = retail) +
geom_bar(aes(x = releaseDate, y = value, fill = name), position = "fill", stat = "identity")
这是它的样子。
我正在尝试构建一个已经给出百分比的条形图。我认为这是一个基本问题,但我无法在互联网上找到任何东西。我的数据是这样的:
我要打印的情节是这样的:
给定 overRetail
和 belowRetail
,每组条形图(即每年)的条形图都需要达到 100%。
我没有任何代码可以显示:我最接近的是不计算百分比,而是使用绝对值。
我想知道:真的是我要找的条形图吗?也许其他类型的情节更适合我想要展示的内容。
提前致谢!
重塑数据后,您想要制作的情节可能会更容易。考虑每年一行,而不是每年一行,并且 below/over.
# Setup Data
require(tidyverse)
releaseDate <- 2014:2021
belowRetail <- c(24.20635, 25.09804, 35.63403, 31.06996, 27.76025, 28.59097, 31.00559, 30.89888)
overRetail <- c(75.79365, 74.90196, 64.36597, 68.93004, 72.23975, 71.40903, 68.99441, 69.10112)
retail <- tibble(releaseDate = releaseDate, belowRetail = belowRetail, overRetail = overRetail)
您可以使用 dplyr 中的 pivot_longer 重塑数据。
retail <- pivot_longer(data = retail, cols = -releaseDate, names_to = "name")
然后,您可以使用geom_bar,在美学(aes)中指定名称。另请注意,必须添加 position = "fill" 和 stat = "identity"。第一个选项使所有条形为 100%,第二个选项使用数据值而不是默认计数。
ggplot(data = retail) +
geom_bar(aes(x = releaseDate, y = value, fill = name), position = "fill", stat = "identity")
这是它的样子。