Как построить линейный участок в R? - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть пример данных, таких как это: это выглядит просто, но я не могу найти выход, я новичок в R. Пожалуйста, помогите!

clust4   catch
    1  131711493
    2   41683530
    3  143101724
    4   35849946 

Как я могу получить столбец с накоплениемграфик, который показывает процент каждого кластера по значению столбца catch?и получите имя легенды, как показано ниже:

group(legend name)
Cluster1
Cluster2
Cluster3
Cluster4

Я пробовал много раз, но он просто показал 4 разных столбчатых графика и не смог изменить имя легенды с 1,2,3,4 накластер 1, ...)

Извините, что не вставил ни одной фотографии, потому что у меня недостаточно репутации, чтобы сделать это.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Solution1: ggplot2

library(tidyverse)
df %>% mutate(catch = catch / sum(catch),
              clust4 = paste0("Cluster-", clust4)) %>%
  ggplot(aes(x = "", y = catch, fill = clust4)) +
  geom_bar(stat = "identity", color = "black") +
  coord_flip()

enter image description here


Solution2: графика

prop <- df$catch / sum(df$catch)
color <- RColorBrewer::brewer.pal(4, "Set2")
barplot(as.matrix(prop), horiz = T, col = color,
        xlim = c(0, 1.2), ylim = c(-0.5, 2),
        legend.text = paste0("Cluster-", 1:4),
        args.legend = list(x = "right", bty = "n"))

enter image description here


Соотношение цветов

     clust4     catch
1 Cluster-1 0.3738122
2 Cluster-2 0.1183026
3 Cluster-3 0.4061390
4 Cluster-4 0.1017462

Данные

df <- read.table(text = "clust4      catch
                              1  131711493
                              2   41683530
                              3  143101724
                              4   35849946", header = T)
0 голосов
/ 29 декабря 2018

Это основной код для столбчатой ​​диаграммы с накоплением в R с использованием библиотеки ggplot2, измените переменные в соответствии с вашим набором данных и нанесите его на график

# library
  library(ggplot2)

# create a dataset
specie=c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , 
rep("triticum" , 3) )
condition=rep(c("normal" , "stress" , "Nitrogen") , 4)
value=abs(rnorm(12 , 0 , 15))
data=data.frame(specie,condition,value)

# Grouped
ggplot(data, aes(fill=condition, y=value, x=specie)) +
geom_bar(position="dodge", stat="identity")

# Stacked
ggplot(data, aes(fill=condition, y=value, x=specie)) +
geom_bar( stat="identity")

# Stacked Percent
ggplot(data, aes(fill=condition, y=value, x=specie)) +
geom_bar( stat="identity", position="fill")
...