adi*_*aya 5 r scale ggplot2 ggally
我似乎无法ggparcoord使用离散比例来绘制颜色.当我这样做:
ggparcoord(data = iris, columns = 1:4, groupColumn = "Species")
Run Code Online (Sandbox Code Playgroud)
输出图仍然使用连续比例(使用Species因子的级别)对线条着色.
我也尝试过scale_color_manual这里指定技巧的修改版本:控制ggparcoord中的颜色,但无济于事.
ggparcoord(data = iris, columns = 1:4, groupColumn = "Species") +
scale_color_manual(values = c("setosa" = "red",
"versicolor" = "green",
"virginica" = "blue"))
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:Error: Continuous value supplied to discrete scale.
我也尝试过.. + scale_color_discrete():同样的错误信息.
我很难过 ......即使ggparcorod cran页面上的例子都不起作用:
data(diamonds, package="ggplot2")
diamonds.samp <- diamonds[sample(1:dim(diamonds)[1],100),]
ggparcoord(data = diamonds.samp,columns = c(1,5:10),groupColumn = 2)
Run Code Online (Sandbox Code Playgroud)
错误信息: 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) )
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以完成相同的事情而无需添加scale_color_discrete("Species", labels=levels(iris$Species) )部件?
例如,在ggplot2,
ggplot(data=iris, aes(x=Sepal.Width,y=Sepal.Length,color=Species)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
自动生成标记精美的传说.是否有类似的方法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
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激!
一种解决方案是使用参数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))
Run Code Online (Sandbox Code Playgroud)