gpt4 book ai didi

r - ggparcoord : color using discrete scale

转载 作者:行者123 更新时间:2023-12-03 08:29:23 25 4
gpt4 key购买 nike

我似乎无法得到我的 ggparcoord使用离散比例绘制颜色。当我这样做时:

ggparcoord(data = iris, columns = 1:4, groupColumn = "Species")

输出图仍然使用连续比例(使用 Species 因子的水平)为线条着色。

enter image description here

我也试过 scale_color_manual 的修改版本此处指定的技巧: controlling color in ggparcoord ,无济于事。
ggparcoord(data = iris, columns = 1:4, groupColumn = "Species") + 
scale_color_manual(values = c("setosa" = "red",
"versicolor" = "green",
"virginica" = "blue"))

但我收到此错误消息: Error: Continuous value supplied to discrete scale .

我也试过 .. + scale_color_discrete() : 同样的错误信息。

我被难住了……即使是 ggparcorod cran page 上的例子不工作:
data(diamonds, package="ggplot2")
diamonds.samp <- diamonds[sample(1:dim(diamonds)[1],100),]
ggparcoord(data = diamonds.samp,columns = c(1,5:10),groupColumn = 2)

错误信息: Error: (list) object cannot be coerced to type 'double'
编辑

有一个解决方案是使用 mapping=aes(color=as.factor(Species)) ,如图 Didzis Elferts'下面回答。但是,它需要在 scale_color_discrete 中添加一些进一步的自定义。
ggparcoord(data = iris, columns = 1:4, mapping=aes(color=as.factor(Species))) +
scale_color_discrete("Species", labels=levels(iris$Species) )

是否有一种无需添加 scale_color_discrete("Species", labels=levels(iris$Species) ) 即可完成相同操作的方法?零件 ?

enter image description here

例如,在 ggplot2 ,
ggplot(data=iris, aes(x=Sepal.Width,y=Sepal.Length,color=Species)) + geom_point()

自动生成标签很好的图例。 ggparcoord中是否有类似的方法? ?

我使用的是 R 版本 3.2.1, ggplot2_2.0.0 , 和 GGally_1.0.0
sessionInfo()
# R version 3.2.1 (2015-06-18)
# Platform: x86_64-apple-darwin13.4.0 (64-bit)
# Running under: OS X 10.10.5 (Yosemite)
#
# locale:
# [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] ggplot2_2.0.0 GGally_1.0.0 magrittr_1.5 dplyr_0.4.3

任何帮助将非常感激!

最佳答案

一种解决方案是使用参数 mapping=并将其设置为 as.factor(Species) (没有 as.factor() 它给出了与问题相同的结果)。然后用 scale_color_discrete()您可以获得Species名称作为标签。

ggparcoord(data = iris, columns = 1:4, mapping=aes(color=as.factor(Species)))+
scale_color_discrete("Species",labels=levels(iris$Species))

enter image description here

关于r - ggparcoord : color using discrete scale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com