Тонкая настройка xlabel и ylabel в параллельном сюжете Parcoord R
Я сделал 13 параллельных координатных линий, где каждый график имеет x линий, каждая из 5 точек. Есть три вещи, которые я хотел бы изменить:
- Я хотел бы удалить очень длинные вертикальные отметки по оси X, которые выступают ниже из графика
- Я хотел бы изменить метки оси X каждого графика на "N", "1", "2", "3", "4"
- Я хотел бы, чтобы ось Y была помечена для каждого графика. В настоящее время это не так. Максимальное значение y для каждого графика - max (вход). Итак, мне нравятся четыре метки по оси Y: max(вход), 3/4 max(вход), 1/2 max(вход) и 1/4 max(вход) (все до ближайшего целого числа, чтобы держать его аккуратным),
- Мне бы хотелось, чтобы над всеми графиками был основной заголовок (сейчас я просто назову его "Основной заголовок").
Вот мой код в настоящее время:
par(mfrow = c(3,5))
par(mar=c(0.1,0.1,0.1,0.1))
# For each color (cluster) in the random network
for (i in 1:max(net$colors)){
color = mergedColors[which(net$colors == i)[1]]
input = countTable[which(net$colors==i),]
parcoord(input, lty = 1, var.label = FALSE, col = color)
}
где str (входные данные) - это data.frame из x наблюдений 5 переменных.
Я пытался добавить такие вещи, как x.label = c("N","1","2","3","4"), но это не сработало.
Редактировать:
Вот некоторые примеры данных, согласно предложениям. Пожалуйста, дайте мне знать, если я должен включить что-нибудь еще:
net <- data.frame(colors=as.numeric(sample(1:15, 100, replace = T)))
mycols <- c("brown", "blue", "turquoise", "greenyellow", "red",
"pink", "green", "yellow", "magenta", "black","purple",
"tomato1","peachpuff","orchid","slategrey")
mergedColors = mycols[net$colors]
countTable <- data.frame(matrix(sample(1:100,100*5, replace=T),
ncol=5, dimnames=list(NULL, c("Norm","One","Two","Three","Four"))))
1 ответ
Решение
ХОРОШО. Я не уверен, что понимаю запрос 1, но вот что я придумал
library(MASS)
opar<-par(no.readonly=T)
par(mfrow = c(3,5))
par(oma=c(1.2,2,2,0))
par(mar=c(2,2,0.1,0.1))
# For each color (cluster) in the random network
for (i in 1:max(net$colors)){
color = mergedColors[which(net$colors == i)]
input = countTable[which(net$colors==i),]
colnames(input)<-c("N",1:4)
parcoord(input, lty = 1, var.label = FALSE, col = color)
axis(2,at=seq(0,1,length.out=5),labels=seq(min(input),max(input), length.out=5))
}
mtext("Main Title",3, outer=T)
par(opar)