Различные графические символы на графике рассеяния r - PullRequest
1 голос
/ 08 марта 2020
    bweight  gestwks            hyp  sex
1   2974    38.5200004577637    0   female
2   3270    NA                  0   male
3   2620    38.150001525878899  0   female
4   3751    39.799999237060497  0   male
5   3200    38.889999389648402  1   male
6   3673    40.970001220703097  0   female

Я бы хотел построить график «Вес ребенка» (вес) против периода беременности (жесты).

Вот мой код для этого:

plot(courseworkData1$bweight ~ courseworkData1$gestwks, xlab="Gestation Period", ylab="Baby weight")

Но тогда у меня есть переменная "hyp". Это обозначено вкратце для материнской гипертонии. Я хотел бы сделать график, который бы отображал вес ребенка с гипертонией с другим символом, например, квадрат или что-то еще. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 08 марта 2020

Мы можем использовать параметр pch для plot, чтобы указать переменную, которая будет использоваться для символов:

Редактировать:

Адаптировано для ваших данных:

Создайте MRE:

courseworkData1 <- read.table(text="ID   bweight  gestwks            hyp  sex
1   2974    38.5200004577637    0   female
2   3270    NA                  0   male
3   2620    38.150001525878899  0   female
4   3751    39.799999237060497  0   male
5   3200    38.889999389648402  1   male
6   3673    40.970001220703097  0   female", header=TRUE, stringsAsFactors=FALSE)

С помощью ?pch мы получим список доступных символов. Тогда нам просто нужно добавить новую переменную для кодирования желаемого ключа. Например, если мы хотим использовать квадраты (ключ = 0) и треугольники (ключ = 2):

courseworkData1$symbol_key <- ifelse(courseworkData1$hyp == 0, 0, 2)
plot(bweight ~ gestwks, data=courseworkData1, 
     xlab="Gestation Period", ylab="Baby weight", pch=courseworkData1$symbol_key)
legend("bottomright", title="hyp", legend = c("0", "1"), pch = c(0,2))

enter image description here

1 голос
/ 10 марта 2020

"Если бы я хотел изменить символы, например, с простого круга на темный закрашенный круг и квадраты, чтобы сказать треугольники, как бы вы это сделали?"

R имеет 25 легко доступных графических символов (pch) на основе целых чисел 1-25. Есть и другие, но это наиболее часто используемые. Вы можете увидеть их все из этих команд:

# windows(7,4)
plot(-1:25, rep(0,27), pch=-1:25, cex=2, col="blue", bg="red", yaxt="n")
text(-1:25, rep(0,27), labels=-1:25, pos=1)
abline(v=c(14.5, 20.5))
mtext(text=c("Hollow symbols", "Filled symbols", "Filled symbols\nwith borders"), 
      side=3, at=c(6, 17.5, 23), line=-2)

enter image description here

Для ПК -1: 14 вы получаете пустые символы - они не могут быть заполнены с помощью цвет или фон. Только символы с 15 по 20 могут быть полностью закрашены с помощью графического параметра col (по умолчанию черный). Для символов с 21 по 25 цвет задается с помощью графического параметра bg (по умолчанию - none), и можно добавить дополнительные рамки, указав их цвет с помощью col (по умолчанию черный) и ширину с помощью lwd ( по умолчанию 1). Символы с 15 по 18 не имеют границы, поэтому заполненный круг, заданный pch=16, будет меньше, чем solid круг, заданный pch=19, на величину, которая зависит от размера границы (lwd) и размер символа (cex).

Итак, чтобы получить темный закрашенный круг, вы можете выбрать pch=16 или pch=19, а для (полого) треугольника вы можете выбрать pch=2 или pch=6 (перевернутый).

...