ggplot条形图中离散数据的格式

时间:2016-04-12 14:57:57

标签: r ggplot2 bar-chart

我确定这很简单,但是自从我使用过R之后已经有一段时间了,我从来没有用ggplot制作过条形图。

我从更大的数据集中获得以下平均值:

> mean_gc
PVC1      PVC2      PVC3      PVC4      PVC5      PVC6      PVC7      PVC8      PVC9     PVC10     PVC11 
0.4019026 0.4479259 0.4494118 0.4729437 0.4800556 0.4492290 0.4905295 0.4457566 0.4271259 0.4850341 0.4369965 
PVC12     PVC13     PVC14     PVC15     PVC16 
0.4064052 0.3743776 0.3603853 0.3965469 0.3654610

我的最终目标是绘制一个条形图(因为每个" PVC#"是离散的),并且在R中适合一个步骤函数来尝试找到微妙的断点&# 39; - 但这对以后来说是个问题......

我能够从中获得条形图的唯一方法是使用barplot创建下图。

哪个好,但与ggplot比较难看。

我已尝试将上述数据设置为数据框中的PVC标签和rownames的数据框 - 但我无法正确理解语法,而且我的智慧也很高结束!

我错过了什么?

Demo barplot

编辑数据框上的清晰度

上面只是R中的打印输出(不是展示它的最佳方式 - 我的道歉)。我有以下数据(基于列的格式):

    mean_gc
PVC1  0.4019026
PVC2  0.4479259
PVC3  0.4494118
PVC4  0.4729437
PVC5  0.4800556
PVC6  0.4492290
PVC7  0.4905295
PVC8  0.4457566
PVC9  0.4271259
PVC10 0.4850341
PVC11 0.4369965
PVC12 0.4064052
PVC13 0.3743776
PVC14 0.3603853
PVC15 0.3965469
PVC16 0.3654610

PVC#是row.names的地方。我也有相同的数据集,其中row.names作为第一列出现,如果需要(但我怀疑不是)。

1 个答案:

答案 0 :(得分:2)

您必须melt()数据才能使用ggplot2,因为它假定数据结构整洁。

library(reshape2)
library(ggplot2)
ggplot(melt(df), aes(variable, value)) + 
        geom_bar(stat = "identity")

enter image description here

数据

df <- structure(list(PVC1 = 0.4019026, PVC2 = 0.4479259, PVC3 = 0.4494118, 
    PVC4 = 0.4729437, PVC5 = 0.4800556, PVC6 = 0.449229, PVC7 = 0.4905295, 
    PVC8 = 0.4457566, PVC9 = 0.4271259, PVC10 = 0.4850341, PVC11 = 0.4369965, 
    PVC12 = 0.4064052, PVC13 = 0.3743776, PVC14 = 0.3603853, 
    PVC15 = 0.3965469, PVC16 = 0.365461), .Names = c("PVC1", 
"PVC2", "PVC3", "PVC4", "PVC5", "PVC6", "PVC7", "PVC8", "PVC9", 
"PVC10", "PVC11", "PVC12", "PVC13", "PVC14", "PVC15", "PVC16"
), class = "data.frame", row.names = c(NA, -1L))