在这个条形图中,图例阻挡了它的一部分。如何减小图例的大小?
My code:
`work.gender.marriage.table = table(work$marriage,work$gender)`
`barplot(work.gender.marriage.table,main = "Gender & Marriage",
beside = TRUE,
legend = rownames(work.gender.marriage.table))`
我的数据:
`structure(list(marriage = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), class = "factor", .Label = c("D", "M", "NM", "W")), gender = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("F", "M"), class = "factor"), val = c(12L, 61L, 78L, 56L, 71L, 33L, 86L, 93L)), .Names = c("marriage", "gender", "val"), row.names = c(NA, -8L), class = "data.frame")`
这是使用代码后的图像:
barplot(work.gender.marriage.table,main = "Gender & Marriage",
beside = TRUE)
legend("topright",
legend = rownames(work.gender.marriage.table),
ncol = 2,
cex = 0.5)
答案 0 :(得分:4)
试试这个:
barplot(work.gender.marriage.table,main = "Gender & Marriage",
beside = TRUE)
然后将您的图例添加为:
legend("topright",
legend = rownames(work.gender.marriage.table),
ncol = 2,
cex = 0.5)
根据您的数据:
df = structure(list(marriage = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), class = "factor", .Label = c("D", "M", "NM", "W")), gender = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("F", "M"), class = "factor"), val = c(12L, 61L, 78L, 56L, 71L, 33L, 86L, 93L)), .Names = c("marriage", "gender", "val"), row.names = c(NA, -8L), class = "data.frame")
df
dfM <- df[which(df$gender=="M"),]
dfF <- df[which(df$gender=="F"),]
dfN <- cbind(dfM[,3], dfF[,3])
colnames(dfN) <- c("M", "F")
rownames(dfN) <- dfM$marriage
dfN
barplot(dfN, beside=T, legend.text = rownames(dfN),
args.legend = list(x = "topleft", bty="n", cex = 0.7, ncol = 2))
答案 1 :(得分:1)
您也可以使用ggplot2。
library(ggplot2)
ggplot(work.gender.marriage.table) +
geom_bar(aes(y = val, x = cat), stat="identity") + facet_grid(. ~ sex)
示例data.frame:
work.gender.marriage.table <- data.frame(cat = c("D", "M", "NM", "W", "D", "M", "NM", "W"),
sex = rep(c("M","F"), each = 4),
val = sample(1:100,8))