简体   繁体   中英

Bubble Plot - R

I want to make bubbleplot for two stages for number of individual; with ultimate aim to see if genotypes get same score over 2 stages. So I want Stage_1 on x-axis and Stage_2 on y-axis

I really like this tutorial but I don't know what to place in circle

        Geno  Stage_1 Stage_2
Individual_1        9     8.1
Individual_2      3.1       1
Individual_3      4.1       2
Individual_4        9     6.1
Individual_5      2.9       1
Individual_6      4.1     1.4
Individual_7      4.4     1.5
Individual_8        3       1
Individual_9      3.1     1.3
Individual_10     4.1     1.8
Individual_11     8.3       4
Individual_12     8.6     5.5
Individual_13       9     5.3
Individual_14       9     4.3
Individual_15       7       2
Individual_16       9     5.8
Individual_17       9     6.4
Individual_18     5.4     1.1
Individual_19     5.8     2.3
Individual_20     5.3     1.5
Individual_21       9     6.8
Individual_22       8     3.3
Individual_23     8.1     7.6

@Osssan is spot on. This would be an inappropriate use of a bubble plot since you're looking to see a comparison across stages of different elements (ie you are comparing a value across multiple categories) and do not have the three dimensions necessary for a proper bubble plot. ie:

# NOTE: dput(VARIABLE) is a much better way to post data into SO posts:

dat <- structure(list(Geno = structure(c(1L, 12L, 17L, 18L, 19L, 20L, 
                  21L, 22L, 23L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 13L, 
                  14L, 15L, 16L), .Label = c("Individual_1", "Individual_10", "Individual_11", 
                  "Individual_12", "Individual_13", "Individual_14", "Individual_15", 
                  "Individual_16", "Individual_17", "Individual_18", "Individual_19", 
                  "Individual_2", "Individual_20", "Individual_21", "Individual_22", 
                  "Individual_23", "Individual_3", "Individual_4", "Individual_5", 
                  "Individual_6", "Individual_7", "Individual_8", "Individual_9"
                  ), class = "factor"), Stage_1 = c(9, 3.1, 4.1, 9, 2.9, 4.1, 4.4, 
                  3, 3.1, 4.1, 8.3, 8.6, 9, 9, 7, 9, 9, 5.4, 5.8, 5.3, 9, 8, 8.1
                  ), Stage_2 = c(8.1, 1, 2, 6.1, 1, 1.4, 1.5, 1, 1.3, 1.8, 4, 5.5, 
                  5.3, 4.3, 2, 5.8, 6.4, 1.1, 2.3, 1.5, 6.8, 3.3, 7.6)), .Names = c("Geno", 
                  "Stage_1", "Stage_2"), class = "data.frame", row.names = c(NA, -23L))

# get difference between stages

dat$diff = dat$Stage_2 - dat$Stage_1

# simple barplot

gg <- ggplot(dat, aes(x=reorder(Geno, dat$diff), y=dat$diff))
gg <- gg + geom_bar(stat="identity", width=0.25, fill="steelblue")
gg <- gg + labs(x="", y="Genotype Stage 1/2 Diff", title="Genotype Stage Comparison")
gg <- gg + coord_flip()
gg <- gg + theme_bw()
gg <- gg + theme(panel.border=element_blank())
gg <- gg + theme(panel.grid=element_blank())
gg 

在此处输入图片说明

# bubble plot

dat$label <- gsub("Individual_", "", dat$Geno)

gg <- ggplot(dat, aes(x=Stage_1, y=Stage_2))
gg <- gg + geom_point(aes(size=diff, color=Geno))
gg <- gg + geom_text(aes(label=label), size=4, hjust=1.5)
gg <- gg + theme_bw()
gg <- gg + theme(legend.position="none")
gg

在此处输入图片说明

It should be pretty obvious that the bar chart shows which genotypes have the least difference between stages much more intuitively than the bubble plot (one could try to scale the bubbles better, but it's still going to make it harder to discern/compare and is really not a good use of that chart type).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM