簡體   English   中英

將標簽沿R的x軸放置在繪圖中

[英]Placing the labels in a plot along the x-axis in R

我在R中繪制了一個圖,現在我想將標簽沿圖的x軸放置。 我想將標簽放置在屬於特定總體的樣本數量的中心。 如果我有5個樣本量分別為10、20、20、35、100的人口,那么人口1的標簽應為10/2,人口2的標簽應為20/2,依此類推。 我嘗試了以下方法,但沒有用。 我將不勝感激任何進一步的幫助! 輸入文件的樣本(input.5.Q,僅顯示5個樣本。實際上它由185行和5列組成)

1   0.364957    0.00001 1.00E-05    0.00001 1.00E-05
2   0.485423    0.017426    1.00E-05    0.00001 1.00E-05
3   0.399289    0.00001 1.00E-05    0.002894    1.00E-05
4   0.579652    0.00001 1.00E-05    0.00001 1.00E-05
5   0.578574    0.00001 1.00E-05    0.00001 1.00E-05
6   0.597478    0.00001 1.00E-05    0.00001 1.00E-05

tbl<-read.table(input.5.Q)    
pop<-c("pop1", "pop2", "pop3", "pop4", "pop5")
    n<-c(10, 20,20,35,100)
    at <- n/2
    barplot(t(as.matrix(tbl)),col=rainbow(5),width=1,space=1)
    mtext(1,at=at,text=pop,cex=1, las=2)
    for{....
    }

你可以試試:

tbl <- read.table("clipboard", row.names= NULL) # read your data
head(tbl)
V1       V2       V3    V4       V5    V6
1  1 0.364957 0.000010 1e-05 0.000010 1e-05
2  2 0.485423 0.017426 1e-05 0.000010 1e-05
3  3 0.399289 0.000010 1e-05 0.002894 1e-05
4  4 0.579652 0.000010 1e-05 0.000010 1e-05
5  5 0.578574 0.000010 1e-05 0.000010 1e-05
6  6 0.597478 0.000010 1e-05 0.000010 1e-05
# the barplot
colnames(tbl)[-1] <-c("pop1", "pop2", "pop3", "pop4", "pop5")
barplot(as.matrix(tbl[,-1]),beside = T)

在此處輸入圖片說明

例如,您可以嘗試這樣的操作(這不完全是您想要的,但也許足夠接近?):

# example data
tbl <- data.frame(population = c(rep("pop1", 10), rep(c("pop2", "pop3"), each = 20), rep("pop4", 35), rep("pop5", 100)), 
              V1 = seq(0, 1, size = 185, replace = TRUE),
              V2 = seq(0, 0.1, size = 185, replace = TRUE),
              V3 = seq(1e-05, 0, size = 185, replace = TRUE),
              V4 = seq(0, 0.01, size = 185, replace = TRUE),
              V5 = seq(1e-05, 0, size = 185, replace = TRUE))


library(gridExtra)
library(grid)
library(ggplot2)
library(lattice)

我為繪圖創建了一個函數,以使其更容易分別繪制每個變量。 我也嘗試將所有變量放在一個圖中,但是結果不是很好-太亂了

plot_func <- function(column){
  ggplot(data = tbl, aes_string(x = 1:nrow(tbl), y = column, fill = "population")) + 
    geom_bar(stat = "identity") + 
    theme(axis.title.x = element_blank(), axis.text.x = element_blank(), axis.ticks.x = element_blank()) +
    theme(legend.title = element_blank(), legend.position = "bottom")
}

# run the plot function for each variable and plot
for (i in 2:ncol(tbl)){
  assign(paste("p", i-1, sep = ""), plot_func(column = paste0(colnames(tbl)[i])))
}

grid.arrange(p1, p2, p3, p4, p5, ncol=2)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM