(第一次使用R用户)所以我正在尝试使用不同范围的x轴值重叠直方图,我可以轻松地从excel文件中重现。我觉得我在正确的轨道上,因为它绘制直方图并在x轴上制作x轴。我似乎无法弄清楚如何使轴(3)取出我想要的xlim =。下面是Im使用的代码和图片
## Open Xl Data into R
library(readxl)
dataset <- read_excel("location holder")
View(dataset)
## DLS subsets
Zone_1_DLS <- subset(dataset$DLS, dataset$Zone==1)
Zone_2_DLS <- subset(dataset$DLS, dataset$Zone==2)
Zone_3_DLS <- subset(dataset$DLS, dataset$Zone==3)
## ROP Subsets
Zone_1_ROP <- subset(dataset$DAVG_ROP, dataset$Zone==1)
Zone_2_ROP <- subset(dataset$DAVG_ROP, dataset$Zone==2)
Zone_3_ROP <- subset(dataset$DAVG_ROP, dataset$Zone==3)
## DLS Histograms
DLS1 <- hist(Zone_1_DLS)
DLS2 <- hist(Zone_2_DLS)
DLS3 <- hist(Zone_3_DLS)
## ROP Histograms
ROP1 <- hist(Zone_1_ROP)
ROP2 <- hist(Zone_2_ROP)
ROP3 <- hist(Zone_3_ROP)
## Plot Zone 1 Histograms
plot( ROP1, col=rgb(1,0,0,1), xlim=c(0,300), ylim = c(0,500))
plot( DLS1, axis(3),col=rgb(0,0,1,1), xlim=c(0,10), add = T)
axis(3,xlim=c(0,10))
答案 0 :(得分:0)
我不确定您是否必须使用当前正在寻找的格式,但我不推荐它,因为它很难阅读并可能产生误导。我已经将不同的格式组合在一起,您可以将直方图绘制在一起。
此处使用您在评论中发布的rnorm()
值:
set.seed(42)
p1 <- data.frame(x = rnorm(500,4))
p2 <- data.frame(x = rnorm(500,150))
p1$cat <- "a"
p2$cat <- "b"
p <- rbind(p1, p2)
p$zone <- c(rep(c(1, 2), 500))
library(ggplot2)
ggplot(p, aes(x = x))+
facet_grid(zone~cat, scales = "free")+
geom_histogram(bins = 30)
这将给你这个图(a和b分别代表你的DLS和DAVG_ROP值类型,1和2代表不同的区域):
作为旁注,您将在图表输出中有3行,因为您有3个区域。
至于你的数据,这应该可以重现类似于例子的东西(我不能100%肯定,因为我没有真正测试你的数据,但我相当自信)。我建议将它全部保存为原始数据集,并重新组织一点。
library(dplyr)
library(ggplot2)
df1 <- dataset %>%
select(DLS, Zone) %>%
mutate(x = DLS, cat = "DLS") %>%
select(x, Zone, cat)
df2 <- dataset %>%
select(DAVG_ROP, Zone) %>%
mutate(x = DAVG_ROP, cat = "DAVG_ROP")%>%
select(x, Zone, cat)
df <- rbind(df1, df2)
ggplot(df, aes(x = x))+
facet_grid(Zone~cat, scales = "free")+
geom_histogram()
可能有更有效/简洁的方法在中间进行整理,但这也有效。