R ggplot Как построить столбцы, используя данные из нескольких разных столбцов? - PullRequest
0 голосов
/ 17 июня 2020

Я вижу количество самоубийств в Испании, данные, разделенные годами, помещены в столбцы. 1-14 лет / 15-30 лет / 30-39 лет ...

И разделены по жанрам. Мужское / Женское / Все

это .csv: Ссылка на csv в Gdrive

Я могу построить график с geom_point с помощью этого кода:

library(tidyverse)
library(dplyr)

suicidio<- read.csv("C:/Users/BlackMamba/Desktop/xy/suicidio2.csv", encoding = "ASCII", header = TRUE, sep = ";")
colnames(suicidio) <- c("genero","total", "uno", "a14", "a1529", "a3039", "a4044", "a4549", "a5054", "a5559", "a6064","a6569", "a7074", "a7579","a8084","a8590","a9094","95")

ggplot(suicidio,aes (x=genero))+
  geom_point (aes(y = a1529), color = "red" , size=3)+
  geom_point (aes(y = a3039), color = "black" ,size=3)+
  geom_point (aes(y = a3039), color = "green", size=3)+
  geom_point (aes(y = a4044), color = "blue", size=3)+
  geom_point (aes(y = a4549), color = "grey", size=3)+
  geom_point (aes(y = a5054), color = "pink" ,size=3)+
  geom_point (aes(y = a5559), color = "orange" ,size=3)+
  geom_point (aes(y = a6064), color = "brown" ,size=3)+
  geom_point (aes(y = a6569), color = "steelblue", size=3)

Но я хочу построить график с полосами и получить легенду с цветами для каждого года. Возможно ли это?

У меня есть другой вопрос. В строке colnames я пробовал использовать такие имена, как «1-14», «14-30», но ggplot не может их отобразить, мне нужно переименовать с помощью букв. Я не могу называть "colnames" по номерам?

1 Ответ

2 голосов
/ 17 июня 2020

Явный пример для вас:

s2 <- suicidio %>% 
  pivot_longer(cols = c("uno", "a14", "a1529", "a3039", "a4044", "a4549", "a5054", 
                        "a5559", "a6064","a6569", "a7074", "a7579","a8084","a8590","a9094","95"),
               values_to = "Value", names_to = "Age_Group")

ggplot(s2,aes (x=genero, y = Value))+
  geom_bar(aes(fill=Age_Group), stat="identity", position = "dodge") +
  scale_fill_manual(values = colors()[1:16])

Если вам нужен график наложения, вы можете удалить position="dodge", цвета можно настроить на scale_fill_manual

...