ggplot Как выбрать значения из двух разных столбцов?

У меня есть файл .csv, который имеет 3 параметра для каждого элемента. Если элемент "apple", 3 значения:

  • «Убранная площадь»
  • "Урожай"
  • "Производство"

Я не знаю, как построить эти строки Apple только со значением «Производство».

Это мой код, но он отображает 3 значения:

library(tidyverse)
library(dplyr)
df <- read.csv("C:/Users/....data.csv",
  encoding = "ASCII", header = TRUE, 
  sep = ","
)


ggplot(subset(df, Item == "Chillies and peppers, green"),
             aes(x = Area, y = Y2014)) +
  geom_bar(stat = "identity", width = 0.6) +
  coord_flip()

view(df)

это .csv ссылка на csv

Огромное спасибо заранее!


person Raul    schedule 09.06.2020    source источник
comment
geom_col это хороший способ сделать geom_bar(stat = "identity")   -  person Gregor Thomas    schedule 09.06.2020


Ответы (2)


Вы можете отфильтровать данные перед вызовом ggplot, например

df %>%
    filter(Item == "Apples",
           Element == "Production") %>%
    ggplot() +
    geom_bar(aes(Area, Y2014),
             stat = "identity", width = 0.6) +
  coord_flip()

ПРИМЕЧАНИЕ. Вы также можете отсортировать результаты для лучшей визуализации, используя reorder(Area, Y2014, FUN = abs) вместо простого Area.

df %>%
    filter(Item == "Apples",
           Element == "Production") %>%
    ggplot() +
    geom_bar(aes(reorder(Area, Y2014, FUN = abs),
                 Y2014),
             stat = "identity", width = 0.6) +
  coord_flip()
person Manuel Teodoro    schedule 09.06.2020
comment
Как раз то, что я ищу! У меня есть вопрос. Что означает часть FUN = abs? - person Raul; 09.06.2020
comment
Функция, по которой вы хотите отсортировать данные, в данном случае абсолютное значение. Вы также можете использовать сумму, среднее значение, максимум, журнал или любую другую функцию, даже разработанную вами. - person Manuel Teodoro; 09.06.2020

Поскольку у вас уже загружено dplyr, давайте использовать его, в частности filter

europe %>% 
  filter(Item == "Apples",
         Element == "Production") %>% 
  ggplot(aes(x = Area, y = Y2014)) +
  geom_bar(stat = "identity", width = 0.6) +
  coord_flip()

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

person Greg    schedule 09.06.2020