将分类数据添加到 XY 图

Adding categorical data to an XY plot

我绘制了以下内容:

t = data.frame(Sample=c('1','1','1','2','2','2'), X=c(12,13,14,12,11,15), Y=c(4,3,5,1,2,3), Category=c('+','+','-','-','+','-'))

显示为:

  Sample  X Y Category
1      1 12 4        +
2      1 13 3        +
3      1 14 5        -
4      2 12 1        -
5      2 11 2        +
6      2 15 3        -

使用以下命令:

ggplot(data=t, aes(x=X, y=Y, group=Sample, color=Sample)) + geom_line() + geom_point()

对于每个数据点,将 Category 变量也包含到图中的最佳方法是什么?

最简单的方法是将其添加为一个方面:

facet_wrap(~ Category)

或者你可以试试这个:

ggplot(data=t, aes(x=X, y=Y)) +
    geom_line(aes(group=Sample, color=Sample)) +
    geom_point(aes(color = Category, size = 2))

或者像这样:

ggplot(data=t, aes(x=X, y=Y)) +
    geom_line(aes(group=Sample, color=Sample)) +
    geom_point(aes(shape = Category, size = 1.5))

您可以将其映射到 geom_point() 中的 shapecolor。例如

ggplot(data=t, aes(x=X, y=Y, group=Sample, color=Sample)) + geom_line() + 
  geom_point(aes(shape=Category))

或查看 geom_text():

ggplot(t, aes(X, Y, group = Sample, colour = Sample, label = Category)) + 
  geom_line() + geom_point() + geom_text(size = 10, hjust = 1, vjust = 1)

你也可以试试这个

library(ggplot2)
ggplot(data=t, aes(x=X, y=Y, group=Sample, color=Sample, shape = Category)) + 
geom_line() + geom_point(size=10)+
scale_shape_manual(values=c("-" = "-", "+" = "+"))