我有一组测井数据。在行业中,有专门的软件可以生成典型的井眼测井曲线。这是一个简化的:
需要注意的令人兴奋的事情是:
它们本质上是多面情节
深度是独立变量,但在垂直轴上
绘制了几对测井图,并且
对联中的每个日志可能具有不同的值范围
因为这是一个非常传统的行业,所以我想用我拥有的软件(我没有专业的知识,是一个学生)来复制这些地块的格式。我使用ggplot沿路径前进了一点,但我不知道该怎么做。首先,下面是一些示例数据和代码:
log <- structure(list(Depth = c(282.0924, 282.2448, 282.3972, 282.5496,
282.702, 282.8544, 283.0068, 283.1592, 283.3116, 283.464, 283.6164,
283.7688, 283.9212, 284.0736, 284.226, 284.3784, 284.5308, 284.6832,
284.8356, 284.988), FOO = c(4.0054, 4.0054, 4.0054, 4.0691, 4.0691,
4.0691, 4.0674, 4.0247, 4.0247, 4.0247, 4.0362, 4.1059, 4.2019,
4.2019, 4.2019, 4.0601, 4.0601, 4.0601, 4.2025, 4.387), BAR = c(192.126,
190.2222, 188.6759, 188.6759, 188.6759, 189.7761, 189.7761, 189.7761,
189.2443, 187.2355, 184.9368, 182.5421, 181.882, 181.344, 180.9305,
180.9305, 180.9305, 181.5986, 182.4397, 182.8301)), .Names = c("Depth",
"FOO", "BAR"), row.names = c(NA, 20L), class = "data.frame")
library(reshape2)
library(ggplot2)
# Melt via Depth:
melted <- melt(log, id.vars='Depth')
sp <- ggplot(melted, aes(x=value, y=Depth)) +
theme_bw() +
geom_path() +
labs(title='') +
scale_y_reverse() +
facet_grid(. ~ variable, scales='free_x')
我不知道该怎么做:
将两个变量结合在一起,并成功管理范围
在构面的顶部具有如上图所示的值范围
将标签绘制为单独的构面。我从示例数据中排除了标签,因为这让我感到困惑。
任何帮助都将受到欢迎。
最佳答案
我不知道该怎么做:
将两个变量结合在一起,并成功管理范围
我的回答仅涉及您第一个要点的第一部分。colsplit()
函数对于此类情况很有用。假设多个油井仪器的变量名称分别为油井仪器1和2的测量变量FOO_1
和FOO_2
的BAR_1
,BAR_2
,FOO
,BAR
,那么您可以在之后调用colsplit
melt
将适当的结构添加回合并的数据框中。
#your data, note changed field names
log <- structure(list(Depth = c(282.0924, 282.2448, 282.3972, 282.5496,
282.702, 282.8544, 283.0068, 283.1592, 283.3116, 283.464, 283.6164,
283.7688, 283.9212, 284.0736, 284.226, 284.3784, 284.5308, 284.6832,
284.8356, 284.988), FOO = c(4.0054, 4.0054, 4.0054, 4.0691, 4.0691,
4.0691, 4.0674, 4.0247, 4.0247, 4.0247, 4.0362, 4.1059, 4.2019,
4.2019, 4.2019, 4.0601, 4.0601, 4.0601, 4.2025, 4.387), BAR = c(192.126,
190.2222, 188.6759, 188.6759, 188.6759, 189.7761, 189.7761, 189.7761,
189.2443, 187.2355, 184.9368, 182.5421, 181.882, 181.344, 180.9305,
180.9305, 180.9305, 181.5986, 182.4397, 182.8301)), .Names = c("Depth",
"FOO_1", "BAR_1"), row.names = c(NA, 20L), class = "data.frame")
#adding toy data for 2nd well
log$FOO_2 <- log$FOO_1 + rnorm(20, sd=0.1)
log$BAR_2 <- log$BAR_1 + rnorm(20, sd=1)
#melting
melted <- melt(log, id.vars='Depth')
#use of colsplit
melted[, c('Var', 'Well')] <- colsplit(melted$variable, '_', c('Var', 'Well'))
melted$Well <- as.factor(melted$Well)
sp <- ggplot(melted, aes(x=value, y=Depth, color=Well)) +
theme_bw() +
geom_path(aes(linetype=Well)) +
labs(title='') +
scale_y_reverse() +
facet_grid(. ~ Var, scales='free_x')