gpt4 book ai didi

r - 条形图 - 两个相邻的条形图和单独窗口中的条形图

转载 作者:行者123 更新时间:2023-12-04 09:16:26 29 4
gpt4 key购买 nike

我想使用以下数据来创建可视化:

> dput(data)
structure(c(1264L, 2190L, 2601L, 1441L, 1129L, 2552L, 1820L, 306L,
1124L, 298L, 233L, 493L, 2316L, 461L, 294L, 238L, 15L, 89L, 152L,
163L, 116L, 60L, 80L, 31L, 27L, 41L, 33L, 58L, 55L, 89L, 7L,
7L, 13L, 23L, 54L), .Dim = c(7L, 5L), .Dimnames = list(c("Mark1",
"Mark2", "Greg1", "Greg2", "Tom1", "Tom2", "Martin"), c("1", "2", "3", "4",
"5")))

我想以类似于下面显示的条形图的方式将其可视化:

Example

但是,我不想将条形图相互堆叠,而是将条形图相互放置。总共应该有 4 个窗口。此处的窗口指的是一组两个条形图(例如,对于 Mark1 和 Mark2)或 Martin 的单个条形图。

为了更清楚:

Mark1 和 Mark2 - 应该在同一个窗口中/上

Greg1 和 Greg2 - 同上

Tom1 和 Tom2 - 同上

Martin - 由单个条形图组成的窗口

最佳答案

这是使用 tidyverse 宇宙中的包来完成此操作的一种方法:

library(ggplot2)
library(dplyr)
library(tibble)
library(stringr)
library(reshape2)

# d <- your dput data

melt(d) %>%
as_tibble() %>%
select(name_input=Var1,
x=Var2,
value) %>%
mutate(name=as.factor(str_extract(string = name_input,
pattern = '\\D*')),
id=str_extract(string = name_input,
pattern = '\\d'),
id=as.factor(ifelse(is.na(id),1,as.numeric(id)))) %>%
ggplot(aes(x=x,y=value))+
geom_bar(stat = 'identity',aes(fill=id),position='dodge')+
facet_grid(facets = .~name)

ggplot result

关于r - 条形图 - 两个相邻的条形图和单独窗口中的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766679/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com