Диаграмма geom_rect()

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Диаграмма geom_rect()

Сообщение VistaSV30 » 21 апр 2020, 12:47

Добрый день!

Исходные данные - таблица с двумя столбцами:
- Номер недели (N)
- Вес груза (M)

Количество поставок грузов в неделю может быть любым от 0 и больше

Посчитал количество поставок для каждой недели
df <- table(N, M)

Теперь нужно построить такую диаграмму - Количество поставок по неделям
Изображение

Пробую это сделать с помощью средств пакета ggplot2 - geom_rect()
Не получается из df получить координаты для прямоугольников.

Пробовал преобразовать table() в data.frame() тогда в таблице получаются только 3 колонки.

Помогите, кто знает.
Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Диаграмма geom_rect()

Сообщение gamm » 21 апр 2020, 14:55

VistaSV30 писал(а):
21 апр 2020, 12:47
тогда в таблице получаются только 3 колонки
столько и должно быть. Если нужно больше (ширину w) считаем руками.
hint: ?geom_rect
и читаем, и вникаем :mrgreen:

Код: Выделить всё

set.seed(123)
x<-factor(sample(1:5,10,replace=TRUE),levels=1:5)
y<-factor(sample(1:5,10,replace=TRUE),levels=1:5)
table.df<-as.data.frame(table(x,y))
names(table.df)<-c("X","Y","Count")
ggplot(table.df,aes(X,Y))+geom_tile(aes(fill=Count),colour="grey50")

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Диаграмма geom_rect()

Сообщение VistaSV30 » 21 апр 2020, 18:42

Спасибо уважаемый gamm!
Сделал все по Вашему образцу. Теперь всё работает как надо.

Но можно еще вопрос "для повышения собственной образованности".
Есть ли возможность в R преобразовать table() в data.frame() так, чтоб сохранилась структура table?
Или для пользователей R в этом в принципе нет необходимости?

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Диаграмма geom_rect()

Сообщение gamm » 21 апр 2020, 21:40

table - это матрица, видимо она Вам и нужна, а не data.frame. Нужно просто атрибуты поменять

Код: Выделить всё

set.seed(123)
x<-factor(sample(1:5,10,replace=TRUE),levels=1:5)
y<-factor(sample(1:5,10,replace=TRUE),levels=1:5)
table.tbl<-table(x,y)
table.mtr<-table.tbl
class(table.mtr)<-"matrix"
print(table.mtr)
# и если уж очень хочется data.frame (непонятно, правда, зачем - шахматка в виде матрицы удобнее)
table.mtr.df<-as.data.frame(table.mtr)
print(table.mtr.df)

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей