[英]Error message when using Dplyr to filter with more than 3 levels to a factor
[英]Cycling through point shapes when more than 6 factor levels
在geom_point
使用美学映射shape
时,当存在的因子数量超过 6 时,我收到以下消息:
“形状调色板最多可以处理 6 个离散值,因为超过 6 个变得难以区分;您有 15 个。考虑手动指定形状。如果您必须拥有它们。”
我倾向于同意限制不同形状数量的原则,但是当将形状与颜色结合使用时,这应该不是问题。
有没有一种优雅的方法让 ggplot 在形状中循环,即设置 symbol7 = symbol1 等? 现在它只是省略了因子水平 > 6 的点。
正如你所看到的,你有很多形状的可能性。 当您达到 >6 时,您必须手动设置数字,如下所示:
ggplot(data=dat1, aes(x=x, y=y,group=method,shape=method,color=method))+
geom_point() +
scale_shape_manual(values=seq(0,15))
通过这种方式,您将不会有任何警告,并且您将在图表上获得相应的符号
更新
正如 Luchonacho 指出的那样,有许多新的形状可用。 请记住,如果您想使用循环设置它们,请不要使用aes()
因为它会暂时将最后一个绘图参考(即仅最后一个循环输入)保留在内存中,并且只绘制该参考。
正如其他答案所指出的,您需要使用scale_shape_manual
。
要重复所需的符号,您可以简单地使用rep(x, times)
。 例如,如果您想重复填写的符号 14 到 18(有关符号列表,请参阅 luchonacho 答案),您可以使用以下内容:
ggplot(data, aes(x,y, colour = z)) + geom_point()
scale_shape_manual(values = rep(15:18, 5))
这会将符号 15 到 18 重复五次,因此对于z
20 个不同值就足够了。
当您有 6 个以上的因素时,在最终图表中很难区分。 我使用颜色和形状的组合来获得 15 个因素的预期效果,将它们分成 3 种颜色和 5 个符号,在 geom_ 行后使用以下代码
+scale_color_manual(values=c(rep("#00BFCC",5), rep("#E7AA00",5), rep( "#FC4E07", 5)))
+scale_shape_manual(values=rep(0:4, 3))
另请注意,可以使用不同的颜色和形状更改值。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.