У меня есть следующие образцы данных в R.
d <- read.table(text =
"Grp Var Col1 Col2 Col3
grp_1 8 46.8 50.0 50.6
grp_1 16 95.6 47.4 48.0
grp_1 24 45.1 45.6 46.4
grp_1 32 68.8 44.3 58.2
grp_1 40 44.6 52.2 44.3
grp_1 48 86.5 42.2 68.6
grp_2 40 63.2 95.6 63.0
grp_2 60 66.7 67.5 65.6
grp_2 80 69.6 70.7 67.9
grp_2 100 71.9 73.4 69.3
grp_2 120 73.8 75.7 48.0
grp_3 500 51.9 50.0 50.5
grp_3 1000 65.5 53.0 53.4
grp_3 5000 61.2 99.0 59.9
grp_3 10000 80.1 63.0 62.8
grp_3 30000 25.9 33.8 14.2
", header=T
)
Столбцы Col1
, Col2
и Col3
для каждой группы должны быть нанесены на график против Var.
Группа 1 имеет 6 значений для Var, Col1 - Col3, в то время как группы 2 и 3 имеют 5 значений. Я использую функцию xyplot()
Lattice, чтобы построить их в сетке. Код ниже:
#Groups as factors
d$Grp <- factor(d$Grp, levels=c("grp_1","grp_2","grp_3"), order=TRUE)
#Plot the data
xyplot(
Col1 + Col2 + Col3 ~ Var | Grp,
data=d,
superpose=T,
as.table=TRUE,
col=c("#cc0000","#008000", "#0073e6"),
lwd=1.5, ylim = c(0,120),
ylab = list(label=expression("My Values"), fontsize=15),
xlab = list(label="Var",fontsize=15),
key=list(
text = list(c("Col1", "Col2", "Col3")),
lines = list( lwd=1.5, col=c("#cc0000","#008000", "#0073e6")),
corner = c(1, 0),
x = 0.90,
y = 0.17),
par.settings = list(strip.background=list(col="white")),
scales=list(cex=1.2),
type=c("l","g")
)
Сюжет выглядит так:
Понятно, что для групп 1 и 2 нанесены значения выглядят грязно, потому что значения оси X 500,1000,5000,10000,30000
вместо 8,16,24,32,40,48
и 40,60,80,100,120
. Есть ли способ исправить значения по оси X для группы 1 и 2, используя xyplot()
(предпочтительно)? Я также открыт для других интересных предложений. Например, ожидаемый результат может быть таким: