【问题标题】:Cannot superimpose one parallel coordinate plot over another using GGally package (and ggplot2) package in R无法使用 R 中的 GGally 包(和 ggplot2)包将一个平行坐标图叠加在另一个上
【发布时间】:2017-04-29 21:07:48
【问题描述】:

我正在使用 R 中 GGally 包的 ggparcoord() 函数来创建虹膜数据的平行坐标图(R 中存在)。我使用了以下代码

ggparcoord(data=iris, columns=1:4 , groupColumn=5,alpha=I(0.3))+theme_light()+theme(legend.position="none").

现在我已经分别计算了三个物种(setosa、versicolor、virginica)的四个变量(Sepal.Length、Sepal.Width、Petal.Length、Petal.Width)的中位数,并使用这些信息创建了一个新的数据。

这是数据(我已将数据命名为 med)

  |Sepal.Length|    Sepal.Width |Petal.Length | Petal.Width | Species
-----------------------------------------------------------------
  |         5   |         3.4   |      1.5    |    0.2      |  1
  |        5.9  |         2.8   |     4.35    |    1.3      |  2
  |        6.5  |         3     |     5.55    |      2      |  3        

这里1表示setosa,2表示versicolor,3表示virginica。使用这些数据,我再次创建了一个平行坐标图。代码是:

ggparcoord(data=med,columns=1:4, groupColumn=5)+theme_light().

我现在希望将这个情节叠加在之前的情节之上。为此,我尝试使用

p<-ggparcoord(data=iris, columns=1:4 , groupColumn=5,alpha=I(0.3)) p+ggparcoord(data=med,columns=1:4, groupColumn=5)+theme_light().

但这给了我以下类型的错误

“错误:不知道如何将 o 添加到绘图中”。

请帮我解决这个问题。

提前感谢您抽出时间来查看我的问题。

苏拉迪普

【问题讨论】:

    标签: r


    【解决方案1】:

    在这种情况下,您需要创建一个结合了摘要信息和原始数据的数据集。我使用dplyr 按物种创建摘要,给它一个alpha 值,然后将它与原始iris 数据集绑定回来,并添加alpha 值。

    结果图将原始数据显示为非常透明,而汇总的中位数显示为不透明。您可以针对线型、颜色等进行调整。

    library(dplyr)
    library(GGally)
    library(ggplot2)
    
    med <- iris %>% 
      group_by(Species) %>% 
      summarise_each(funs(median)) %>% 
      mutate(alpha = 1) %>% 
      bind_rows(mutate(iris, alpha = 0.1))
    
    ggparcoord(data = med, columns = 2:4 , groupColumn = 1, alpha = "alpha") + 
      theme_light() + 
      theme(legend.position="none") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多