如何制作BW图以显示数据

时间:2018-12-02 07:42:03

标签: r

我从种子库中的树冠下面和树冠3 m处提取了种子。我有南澳大利亚和斯里兰卡两个国家/地区的三个研究站点的这些数据(部分数据后附)。下面给出了我用于使用晶格绘制BW图的脚本。实际上,我在这里分别为两国准备了两个地块。我想开发这张图。我想在地块的一侧(位于皇冠下方3m处,以2种颜色)显示一个国家(南澳大利亚)的数据,而另一国家(斯里兰卡)的另一侧显示相同的两种颜色,以在皇冠下方并距3m处显示数据

Part of the dataset

setwd("E:/Research/Fieldwork SL-data/Seed bank/analysis")

seed.bank <- read.csv(file="seedbank_rev.csv", header=TRUE, sep=',')
attach(seed.bank)
names(seed.bank)
## [1] "seed.no."   "location"   "study.site" "country"   

seed.bank1<-seed.bank[!(country=="Sri Lanka"),]
seed.bank2<-seed.bank[!(country=="South Australia"),]

library("lattice")

bwplot(log(seed.no.) ~ study.site | location, data=seed.bank1, xlab="Study Sites in South Australia", ylab="log(seed number)")
bwplot(log(seed.no.) ~ study.site | location, data=seed.bank2, xlab="Study Sites in Sri Lanka", ylab="log(seed number)")

1 个答案:

答案 0 :(得分:0)

一种简单的R基础解决方案,可以解决似乎可能引起的问题,因为它是一个barplot(因为您具有分类变量):

# define dataframe:
df <- data.frame(
  location = c(rep("beneath",1), rep("at_distance",4),rep("beneath",4), rep("at_distance",3)),
  country = c(rep("SA",6),rep("SL",6))
)

# check structure:
str(df)

此步骤表明数据已格式化为因子。这些需要转换为字符以获得频率计数:

# convert factors to characters:
df <- lapply(df, as.character)

# make frequency table:
freq_seeds <- table(df$country, df$location)

现在您可以绘制数据了;并排放置相应条的关键参数是beside=TRUE

# define plotting region:
par(mfrow=c(1,1), mar=c(4,4,4,4))
# barplot:
barplot(freq_seeds, beside=T, main="Seeds", col=c("blue", "green"))
# draw legend:
legend("topright", c("South Australia", "Sri Lanka"), fill=c("blue", "green"), col=c("blue", "green"))

enter image description here