R 条形图2条钢筋一条堆叠另一条未堆叠

R 条形图2条钢筋一条堆叠另一条未堆叠,r,bar-chart,R,Bar Chart,尽管有一些类似的问题和我的研究,我似乎无法解决我的小问题。请原谅,如果答案很简单,我很傻……我有一个数据框 df给猫剥皮的方法有很多种,当你学习新工具时,你的确切问题经常会改变。我可能不会以这种方式设置问题规范,但要尽可能接近您的数据和条形图,实现我认为您想要的目标的一种方法是: with(aggregate(R_bar_Ger ~ X=="Germany", data=df, sum), barplot(R_bar_Ger, names.arg=c("Other", "Germany")))

尽管有一些类似的问题和我的研究,我似乎无法解决我的小问题。请原谅,如果答案很简单,我很傻……我有一个数据框


df给猫剥皮的方法有很多种,当你学习新工具时,你的确切问题经常会改变。我可能不会以这种方式设置问题规范,但要尽可能接近您的数据和条形图,实现我认为您想要的目标的一种方法是:

with(aggregate(R_bar_Ger ~ X=="Germany", data=df, sum), barplot(R_bar_Ger, names.arg=c("Other", "Germany")))

因此,我们在这里所做的是通过加法将德国和非德国的数字相加,然后将这些值连同合理的x轴标签一起传递到barplot函数。

有许多方法可以剥猫皮,随着您学习新工具,您的确切问题经常会发生变化。我可能不会以这种方式设置问题规范,但要尽可能接近您的数据和条形图,实现我认为您想要的目标的一种方法是:

with(aggregate(R_bar_Ger ~ X=="Germany", data=df, sum), barplot(R_bar_Ger, names.arg=c("Other", "Germany")))

因此,我们在这里所做的是通过加法将德国和非德国数字相加,然后将这些值连同合理的x轴标签一起传递给barplot函数。

您需要先向数据中添加一列:

df$group <- ifelse(df$X=="Germany","Germany","Other")

您需要先在数据中添加一列:

df$group <- ifelse(df$X=="Germany","Germany","Other")

解决这个问题的一种方法是使用
ggplot2
并稍微操纵数据帧

首先,在数据框中添加一列,指示应在哪个栏中绘制国家(德国或非德国):

请注意,如果您不熟悉
ggplot2
,则只有前两行是创建绘图所必需的,其他行是为了使绘图看起来美观。由于德国比你们的其他国家大几个数量级,如果不进行某种规模的扩展,这看起来不会很好
ggplot2
有许多内置的缩放命令,可能值得探索——在这里,我添加了平方根比例,以便您可以根据需要对非德国国家/地区进行堆叠


可以找到
ggplot2
条形图的文档-如果您正在寻找功能强大的绘图工具,一定值得一读。

解决此问题的一种方法是使用
ggplot2
并稍微操纵数据框

首先,在数据框中添加一列,指示应在哪个栏中绘制国家(德国或非德国):

请注意,如果您不熟悉
ggplot2
,则只有前两行是创建绘图所必需的,其他行是为了使绘图看起来美观。由于德国比你们的其他国家大几个数量级,如果不进行某种规模的扩展,这看起来不会很好
ggplot2
有许多内置的缩放命令,可能值得探索——在这里,我添加了平方根比例,以便您可以根据需要对非德国国家/地区进行堆叠


可以找到
ggplot2
条形图的文档-如果您正在寻找功能强大的绘图工具,那么一定值得一读。

这看起来很神奇,正是我想要的!我仍然收到一条错误消息,但我认为这与我的R版本有关。我会解决的。这是一段很好的代码。非常感谢。这看起来很棒,正是我想要的!我仍然收到一条错误消息,但我认为这与我的R版本有关。我会解决的。这是一段很好的代码。非常感谢。
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"))