我承认这个问题已经被问了至少两次,但没有一个提供的答案对我有用。
我的数据与 ggbiplot 示例非常相似wine
,所以我将使用它来说明我的问题。
我希望我的数据点具有不同的颜色和形状,因此它们在彩色打印时看起来不错,但在黑白打印时仍然可以识别。这实际上工作得很好,但传说并没有发挥作用。
require(scales)
library(devtools)
install_github("vqv/ggbiplot")
library(ggbiplot)
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
groups = wine.class, ellipse = TRUE, circle = TRUE, var.axes=FALSE) +
scale_color_discrete(name = '') +
geom_point(aes(colour=wine.class,shape=wine.class),size=2) +
theme(legend.direction = 'horizontal', legend.position = 'top')
传说显然不是我想要的。形状和颜色应该在同一个图例中。
(作为奖励,我还想从点中删除小线,但如果这不容易做到,我可以接受它们。)
第一个建议
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
groups = wine.class, ellipse = TRUE, circle = TRUE, var.axes=FALSE) +
scale_color_discrete(name = '') +
geom_point(aes(colour = wine.class), size = "2") +
scale_color_manual(values=c(16,17,18)) +
theme(legend.direction = 'horizontal', legend.position = 'top')
产生此错误消息(根本没有情节)
Scale for 'colour' is already present. Adding another scale for 'colour',
which will replace the existing scale.
Fehler in coords$size * .pt :
nicht-numerisches Argument für binären Operator
(最后两行转换为“coords$size * .pt 中的错误:二元运算符的非数字参数)
第二个建议
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
groups = wine.class, ellipse = TRUE, circle = TRUE, var.axes=FALSE) +
scale_color_discrete(name = '') +
geom_point(size = 2) +
scale_colour_manual(name = "Wines",
labels = c("barolo","grignolino","barbera"),
values = c("blue", "red", "green")) +
scale_shape_manual(name = "Wines",
labels = c("barolo","grignolino","barbera"),
values = c(17,18,19))
给我这个错误信息
Scale for 'colour' is already present. Adding another scale for 'colour',
which will replace the existing scale.
和一个带有彩色椭圆的有趣情节,带有彩色点的图例,但黑色数据点。
恐怕我对 R 绘图的了解不足以做出任何事情。有人可以以正确的方式指出我吗?