条形图仅显示一个数据

时间:2020-06-07 13:08:01

标签: r bar-chart

我正在处理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") 

但它看起来像这样:

2 个答案:

答案 0 :(得分:1)

首先,检查table(popus$n, popus$popu_source)的结果,如您所见,当popus$npopus$popu_source的组合中存在一个组合时,它是一个显示“ 1”的矩阵数据集。

这就是为什么您的条形图的平面为“ 1”的原因。

如何解决?

barplot(popus$n, border=F , names.arg=popus$popu_source)

enter image description here

这样,您将有一个显示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")

enter image description here

数据

popus <- data.frame(popu_source = c('IMF', 'CIA (2007)', ' Wikipedia', 'World Bank'),
                    n = c(1, 5, 5, 198))