Изменение структуры данных для создания правильной гистограммы в ggplot - PullRequest
1 голос
/ 20 июня 2019

Я хотел бы сделать график в R, который мне удалось сделать в Excel. Это гистограмма с видами на оси X и логарифмом числа наблюдений на оси Y. Моя текущая структура данных в R не подходит (я думаю) для создания этого графика, но я не знаю, как это изменить (умным способом).

У меня есть (среди прочего) столбец «camera_site» (сайт 1, сайт 2 ..), «вид» (agouti, paca ..), «count» (1, 2 ..), с около 50 000 наблюдений.

Я попытался создать фрейм данных с колонкой «виды» (с 18 видами) и колонкой с «логом (общее наблюдение)» для каждого вида ( см. Фрейм данных ) Но тогда я могу только сделать точечный график.

Вот как я бы хотел, чтобы график выглядел: желаемый график сделан в Excel

1 Ответ

1 голос
/ 20 июня 2019

Ваши данные, кажется, в правильном формате из того, что я могу сказать из вашего скриншота. Минимальный объем кода, который вам понадобится для получения графика, будет следующим: предполагается, что ваш data.frame называется df:

ggplot(df, aes(VRM_species, log_obs_count_vrm)) +
  geom_col()

Многие люди интуитивно пытаются geom_bar(), но geom_col() эквивалентно geom_bar(stat = "identity"), который вы бы использовали, если вы предварительно вычислили наблюдения и не нуждаетесь в ggplot для подсчета. Но, возможно, вы могли бы украсить сюжет немного лучше с некоторыми дополнениями:

ggplot(df, aes(VRM_species, log_obs_count_vrm)) +
  geom_col() +
  scale_x_discrete(name = "Species") +
  scale_y_continuous(name = expression("Log"[10]*" Observations"),
                     expand = c(0,0,0.1,0)) +
  theme(axis.text.x = element_text(angle = 90))

Конечно, вы можете настроить тему так, как вам нравится.

Groetjes

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