同一图形R中多个条形图的数据可视化

data visualization of multiple barplot in same graph R

我有这个数据集

  Feature   Distance    LOF Mahalanobis Cook    DIFFTS  OCSVM   DBSCAN  PCA Gaussian
V1V2    A   8.5 8.8 9.5 10.5    3.8 7.3 0.0 5.4
 V1V2   B   3.7 5.4 5.2 5.3 3.5 4.8 0.0 1.7
 V1V2   C   8.8 9.3 7.7 8.4 4.6 6.8 0.0 3.1
 V1V3   A   6.2 14.8    11.9    11.2    4.1 8.0 0.0 4.3
 V1V3   B   4.7 6.5 5.4 5.6 3.4 5.6 0.0 3.7
V1V3    C   8.5 19.5    14.3    8.4 4.6 8.8 0.0 3.1
     ....       

V1V2V3V4V5  A   2.0 12.0    9.4 10.5    4.0 4.5 0.0 1.0
V1V2V3V4V5  B   4.3 4.7 4.5 5.1 3.7 3.8 0.0 5.6
V1V2V3V4V5  C   3.5 7.8 9.2 9.7 4.5 4.7 0.0 12.9

我想生成一个包含多个条形图的可视化图表。

            LOF           ----                     Gaussian

     V1V2   Barplot (A,B,C) ....................... Barplot (A,B,C)  

特征

      ............................................................           

     V1V2V3V4V5 Barplot (A,B,C)  ..................  Barplot (A,B,C)      

这是一个由 8x26 条形图组成的图表。

劳尔

您可以使用 ggplot2facet_grid。我使用了所提供数据的一个子集,但它可以缩放(尽管 26*8 条形图很多)。

library(reshape2)
library(ggplot2)

首先,重塑数据,因为 ggplot 在处理长格式数据时效果更好。

m_df <- melt(df, id.vars=c("Feature","Distance"))

然后剧情:

p1 <- ggplot(m_df, aes(x=Distance,y=value)) +
  geom_bar(stat="identity") +
  facet_grid(Feature~variable)

使用的数据:

 df <- read.table(text=" Feature   Distance    LOF Mahalanobis Cook    DIFFTS  OCSVM   DBSCAN  PCA Gaussian
    V1V2    A   8.5 8.8 9.5 10.5    3.8 7.3 0.0 5.4
     V1V2   B   3.7 5.4 5.2 5.3 3.5 4.8 0.0 1.7
     V1V2   C   8.8 9.3 7.7 8.4 4.6 6.8 0.0 3.1
     V1V3   A   6.2 14.8    11.9    11.2    4.1 8.0 0.0 4.3
     V1V3   B   4.7 6.5 5.4 5.6 3.4 5.6 0.0 3.7
    V1V3    C   8.5 19.5    14.3    8.4 4.6 8.8 0.0 3.1",header=T

)