我正在处理elo_blatter
数据包中的数据fivethirtyeight
。我想绘制gdp来源和人口的图表,我为此人口做了ex的代码:
popus <- elo_blatter %>% count(popu_source = replace(popu_source, grep('wikipedia', popu_source), 'Wikipedia'))
数据:
现在我尝试做箱线图:
barplot(table(popus$n, popus$popu_source), beside = FALSE,
col = my_colors, border = "white", ylim = c(0, 2),
cex.axis = 0.8, cex.names = 0.8, las = 2, cex.main = 1,
main = "something")
但它看起来像这样:
答案 0 :(得分:1)
首先,检查table(popus$n, popus$popu_source)
的结果,如您所见,当popus$n
,popus$popu_source
的组合中存在一个组合时,它是一个显示“ 1”的矩阵数据集。
这就是为什么您的条形图的平面为“ 1”的原因。
如何解决?
barplot(popus$n, border=F , names.arg=popus$popu_source)
这样,您将有一个显示n
值和名称popu_source
的条形图。如果要使其更美观,请查看barplot
函数的文档。
此链接可以帮助您:https://www.r-graph-gallery.com/37-barplot-with-number-of-observation.html
答案 1 :(得分:0)
一种简单的解决方案是使用setNames
绘制命名矢量,barplot
将把这些名称作为x轴标签。
setNames(popus$n, popus$popu_source)
# IMF CIA (2007) Wikipedia World Bank
# 1 5 5 198
barplot(setNames(popus$n, popus$popu_source), border = "white")
数据
popus <- data.frame(popu_source = c('IMF', 'CIA (2007)', ' Wikipedia', 'World Bank'),
n = c(1, 5, 5, 198))