Создайте график из двоичного столбца в кадре данных - R - PullRequest
1 голос
/ 17 июня 2020

Мне нужно создать точечный график с помощью библиотеки "ggplot" на основе двоичного столбца фрейма данных.

df <- c(1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1)

Мне нужно создавать точку каждый раз, когда значение «1» появляется в столбец, и все точки находятся на одном графике. Спасибо.

Ответы [ 3 ]

2 голосов
/ 17 июня 2020

Если двоичный столбец, о котором вы говорите, связан с некоторыми другими переменными, я думаю, что это может сработать:

(я только что создал несколько случайных x и y, которые имеют ту же длину, что и двоичный 0 , 1с вы предоставили)

x <- rnorm(22)
y <- x^2 + rnorm(22, sd = 0.3)
df <- data.frame("x" = x, "y" = y,
                 "binary" = c(1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1))

library(ggplot2)
# this is the plot with all the points
ggplot(data = df, mapping = aes(x = x, y = y)) + geom_point()
# this is the plot with only the points for which the "binary" variable is 1
ggplot(data = subset(df, binary == 1), mapping = aes(x = x, y = y)) + geom_point()
# this is the plot with all points where they are coloured by whether "binary" is 0 or 1
ggplot(data = df, mapping = aes(x = x, y = y, colour = as.factor(binary))) + geom_point()
1 голос
/ 17 июня 2020

Что-то вроде этого?

library(ggplot2)

y <- df
is.na(y) <- y == 0

ggplot(data = data.frame(x = seq_along(y), y), mapping = aes(x, y)) +
  geom_point() +
  scale_y_continuous(breaks = c(0, 1), 
                     labels = c("0" = "0", "1" = "1"),
                     limits = c(0, 1))

Он отображает только точки, где df == 1, а не нули. Если они вам тоже нужны, не запускайте строку кода, начинающуюся is.na(y).

0 голосов
/ 17 июня 2020

Не совсем уверен, о чем вы спрашиваете, но вот несколько вариантов. Поскольку ваша структура данных не является фреймом данных, я переименовал ее в test. Во-первых, точечная диаграмма с ggplot:

library(ggplot2)
ggplot(as.data.frame(test), aes(x=test)) + geom_dotplot()

enter image description here

Или вы можете сделать то же самое, что и столбец:

qplot(test, geom="bar")

enter image description here

Или, быстрый просмотр примитивного базового R:

plot (test, pch = 16, cex = 3)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...