尽管有一些类似的问题和我的研究,我似乎无法解决我的小问题.请原谅,如果答案很简单,我很傻....我有一个数据框
df<-data.frame(X = c("Germany", "Chile","Netherlands","Papua New Guinea","Cameroon"), R_bar_Ger = c(1300000000, 620000, 550000, 400000, 320000))
我想制作一个有2个小节的条形图(x-achsis上的国家名称,y-achsis上的金额).左侧栏应显示德国,右侧应与其余4个国家叠加.
请提前帮助,非常感谢!
解决此问题的一种方法是使用ggplot2和稍微操纵数据框.
首先,在数据框中添加一列,指示应在哪个国家/地区(德国或非德国)绘制国家/地区:
df$bar <- ifelse(df$X == "Germany", 1, 0)
Run Code Online (Sandbox Code Playgroud)
现在,创建情节:
ggplot(data = df, aes(x = factor(bar), fill = factor(X), y = R_bar_Ger)) +
geom_bar(stat = "identity") +
scale_y_sqrt() +
labs(x = "Country Group", title = "Square Root Scale", fill = "Country") +
scale_x_discrete(labels = c("Not Germany", "Germany"))
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不熟悉ggplot2,只需要前两行来创建绘图 - 其他行是为了让它看起来不错.由于德国比其他国家大几个数量级,如果不进行某种扩展,这种情况看起来不会很好.ggplot2有许多内置的缩放命令可能值得探索 - 在这里,我添加了平方根比例,以便非德国国家实际上可以根据需要进行堆叠.
ggplot2条形图的文档可以在这里找到- 如果你正在寻找一个强大的绘图工具,它绝对值得一读.