Пузырьковая диаграмма с R

У меня есть таблица с обилием видов в разные месяцы. Я хочу создать пузырьковую диаграмму, на которой ось Y соответствует численности видов, а ось X - месяц, а радиус пузырьков обозначает численность видов, которые я нашел за месяц.

У меня такой порядок данных

введите описание изображения здесь

Я хочу закончить пузырьковую диаграмму вот так

le

Пожалуйста помогите. Спасибо


person Iskandar    schedule 02.02.2020    source источник
comment
Изображения - действительно плохой способ публикации данных (или кода). Можете ли вы опубликовать образцы данных в формате dput? Измените вопрос, указав результат dput(df). Или, если он слишком большой, с выводом dput(head(df, 20)). (df - это имя вашего набора данных.)   -  person Rui Barradas    schedule 02.02.2020


Ответы (1)


Ниже приведен пузырьковый график, созданный с использованием фиктивного набора данных. Я попытался показать, как построить набор данных со структурой, подобной набору данных в вопросе, и, как обычно, проблема такого рода связана с переформатированием данных. См. изменение формы data.frame из широкого в длинный формат. В этом случае мне нужно было сначала указать имена строк как новый столбец. Только после этого данные были переформатированы.

library(tidyverse)
library(ggplot2)

df1 %>%
  rownames_to_column(var = "id") %>%
  gather(key, Abundance, -id) %>%
  ggplot(aes(key, id)) +
  geom_point(aes(size = Abundance), colour = "red", fill = "red", shape = 21) +
  labs(x = "", y = "") +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5))

введите описание изображения здесь

Код создания данных.

set.seed(1234)
df1 <- matrix(0, nrow = 10, ncol = 5)
df1[sample(prod(dim(df1)), 10)] <- sample(200:250, 10)
df1 <- as.data.frame(df1)
dimnames(df1) <- list(letters[1:10], LETTERS[1:5])
person Rui Barradas    schedule 02.02.2020