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
Функцията, по която искате да сортирате данните, в този случай абсолютната стойност. Можете също така да използвате Sum, mean, max, log или всяка функция, дори проектирана от вас. - 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