如何通过条形图来融化R数据框和绘图组 [英] How to melt R data.frame and plot group by bar plot

查看:244
本文介绍了如何通过条形图来融化R数据框和绘图组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下R data.frame:

I have following R data.frame:

  group match unmatch unmatch_active match_active
1   A    10       4              0            0
2   B   116      20              0            3
3   c   160      27              1            4
4   D    79      17              0            3
5   E   309      84              4           14
6   F   643     244             10           23
...

我的目标是通过柱状图( http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_(ggplot2) / section-包含更多变量的图),如链接所示。

My goal is to plot a group by bar plot (http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_(ggplot2)/ section-Graphs with more variables) as shown in the link.

我意识到,在开始之前,我需要将数据转换为以下格式:

I realize that before getting to that I need to get the data in to following format

  group variable value
1   A    match    10
2   B    match   116
3   C    match   160
4   D    match    79
5   E    match   309
6   F    match   643
7   A    unmatch   4
8   B    unmatch  20
...

我使用了熔化函数:

I used the melt function:

groups.df.melt <- melt(groups.df[,c('group','match','unmatch', 'unmatch_active', 'match_active')],id.vars = 1)

我认为我没有正确地进行融化,因为在执行上面的groups.df.melt之后,有1000多行对我来说没有意义。

I don't think I am doing the melt correctly because after I execute above groups.df.melt has 1000+ lines which doesn't make sense to me.

我看了在R中的多列上绘制每行直方图并试图遵循相同的步骤,但是我没有得到我想要的图。

I looked at how Draw histograms per row over multiple columns in R and tried to follow the same yet I don't get the graph I want.

另外,我得到以下错误:当我尝试绘图时:

In addition I get following error: When I try to do the plotting:

ggplot(groups.df.melt, aes(x='group', y=value)) + geom_bar(aes(fill = variable), position="dodge") + scale_y_log10()

Mapping a variable to y and also using stat="bin".
  With stat="bin", it will attempt to set the y value to the count of cases in each group.
  This can result in unexpected behavior and will not be allowed in a future version of ggplot2.
  If you want y to represent counts of cases, use stat="bin" and don't map a variable to y.
  If you want y to represent values in the data, use stat="identity".
  See ?geom_bar for examples. (Deprecated; last used in version 0.9.2)
Error in pmin(y, 0) : object 'y' not found


推荐答案

试试:

Try:

mm <- melt(ddf, id='group')
ggplot(data = mm, aes(x = group, y = value, fill = variable)) + 
       geom_bar(stat = 'identity', position = 'dodge')

这篇关于如何通过条形图来融化R数据框和绘图组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆