簡體   English   中英

如何按條形圖融合R data.frame和plot group

[英]How to melt R data.frame and plot group by bar plot

我有以下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-Graphs with more variables),如鏈接所示。

我意識到在開始之前我需要將數據轉換為以下格式

  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
...

我使用了熔化功能:

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

我不認為我正在融化正確,因為在我執行上面的groups.df.melt有1000多行對我沒有意義。

我看了如何在R中的多列上繪制每行的直方圖,並嘗試遵循相同但我沒有得到我想要的圖形。

另外我得到以下錯誤:當我嘗試進行繪圖時:

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

嘗試:

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

要么

ggplot(data = mm, aes(x = group, y = value, fill = variable)) + 
       # `geom_col()` uses `stat_identity()`: it leaves the data as is.
       geom_col(position = 'dodge')

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM