R按形状、颜色和填充的散点图

R按形状、颜色和填充的散点图,r,plot,ggplot2,fill,R,Plot,Ggplot2,Fill,我对R非常陌生,我正试图建立一个散点图,根据形状、颜色和填充对我的数据进行编码。我想要5种不同的颜色,3种不同的形状,这些形状要么填充要么不填充(在非填充点,我仍然想要形状和颜色)。 我的数据基本上如下所示: blank.test <- read.table(header=T, text="Colour Shape Fill X13C X15N 1 B B A 16 10 2 D A A 16 12 3 E

我对R非常陌生,我正试图建立一个散点图,根据形状、颜色和填充对我的数据进行编码。我想要5种不同的颜色,3种不同的形状,这些形状要么填充要么不填充(在非填充点,我仍然想要形状和颜色)。 我的数据基本上如下所示:

blank.test <- read.table(header=T, text="Colour Shape Fill X13C X15N
1       B     B    A   16   10
2       D     A    A   16   12
3       E     A    B   17   14
4       C     A    A   14   18
5       A     A    B   13   18
6       C     B    B   18   13
7       E     C    B   10   12
8       E     A    B   11   10
9       A     C    B   14   13
10      B     A    A   11   14
11      C     B    A   11   10
12      E     B    A   11   19
13      A     B    A   10   18
14      A     C    B   17   16
15      E     B    A   16   13
16      A     C    A   16   14")
我没有得到填充或未填充的数据点

我做了一点研究,看起来问题出在符号本身,不能对线条和填充进行不同的设置;建议我在21到25之间使用pch形状

但如果我这样做:

ggplot(blank.test, aes(x=X13C, y=X15N,color=(Colour), shape=(Shape),fill=(Fill),size=5)) + 
                 geom_point() + scale_shape_manual(values=c(21,22,25))`
我还是得不到我想要的


我还尝试过使用
scale\u fill\u manual
,但没有任何好结果。

我认为你不能使用fill来获得分数。我要做的是在填充和形状之间创建一个交互,并使用这个新因子来定义您的形状和填充/打开符号

blank.test$inter <- with(blank.test, interaction(Shape,  Fill))

我可以让情节正常运行,但传奇似乎绝对坚持要用黑色填充
fill
。我不明白为什么。也许其他人有这个答案

图例上的
5
是因为它位于
aes
中,只有随数据变化的元素才属于该图例

下面是一些示例代码:

ggplot(blank.test, aes(x = X13C, y = X15N, color = Colour, shape = Shape, fill = Fill)) + 
  geom_point(size = 5, stroke = 3) + 
  scale_shape_manual(values=c(21,22,25)) +
  scale_color_brewer(palette = "Set2") +
  scale_fill_brewer(palette = "Set1") +
  theme_bw()

我们不能真正使用您的数据,您应该使用dput(),我在您的图例中没有看到您的5。我认为否决票有点过分热情。在第一个问题的范围内(事实上,甚至不仅仅是第一个问题),这必须是相当高的。。。data/code/images@MLavoie,我对R很陌生,它也是我的第一种编程语言,所以我不知道什么是dput()。当我问一个问题它在哪里时,这并不明显,但我会试着弄清楚它;5在第一节中是非常清楚的image@rawr非常感谢。这很有效!嗨,谢谢你的意见!然而,这并不是我想要的,因为我希望填充为白色/透明或与大纲相同的颜色谢谢!这完全奏效了!然而,我的传说看起来很奇怪,因为它告诉我我有6种形状:A.A,A.B,A.A等等。你知道如何手动设置吗?在任何地方都找不到你所要求的。这就是为什么你需要形状和填充的交互作用。您可以将图例的名称更改为+scale\u shape\u manual(name=“shape*fill”。。。。。
ggplot(blank.test, aes(x=X13C, y=X15N)) + 
                    geom_point(aes(shape=inter,color=Colour)) + scale_shape_manual(name="shape", values=c(0,15,1, 16, 2, 17)) + scale_color_manual(name="colour", values=c("red","blue","yellow", "green", "purple"))
ggplot(blank.test, aes(x = X13C, y = X15N, color = Colour, shape = Shape, fill = Fill)) + 
  geom_point(size = 5, stroke = 3) + 
  scale_shape_manual(values=c(21,22,25)) +
  scale_color_brewer(palette = "Set2") +
  scale_fill_brewer(palette = "Set1") +
  theme_bw()