如何根据R中的rowid在一个图形中绘制两列

如何根据R中的rowid在一个图形中绘制两列,r,R,我只想在绘制数据框中的某些列时使用,但我不知道如何使用,也不能排除未参与绘制的行 这就是数据的外观: txt <- " PM10 PM25 Month row color 1 73 15.5 1 1 black 2 57 12.3 1 2 black 3 22 5.8 1 3 black 4 16 5.2 1 4 black 5 32 9.3 1 5 black 6

我只想在绘制数据框中的某些列时使用,但我不知道如何使用,也不能排除未参与绘制的行

这就是数据的外观:

txt <- "
PM10  PM25 Month row color
1     73  15.5     1   1 black
2     57  12.3     1   2 black
3     22   5.8     1   3 black
4     16   5.2     1   4 black
5     32   9.3     1   5 black
6     42   8.5     1   6 black
7    120  21.5     1   7 black
8     70  18.1     1   8 black
9     14   6.2     1   9 black
10    12   5.0     1  10 black
11    16   4.5     1  11 black
12    15   5.2     1  12 black
13    40   6.4     1  13 black
14    61  10.0     1  14 black
15    74   9.5     1  15 black
16   145  12.8     1  16 black
17    58   6.7     1  17 black
18    36   4.6     1  18 black
19    35   2.8     1  19 black
20    43   4.5     1  20 black
21    73   7.5     1  21 black
22    40   3.7     1  22 black
23    33   5.1     1  23 black
24    32   4.2     1  24 black
25    47  12.5     1  25 black
26    79  22.3     1  26 black
27    72  16.0     1  27 black
28    44  15.0     1  28 black
29    38   9.3     1  29 black
30    35   7.0     1  30 black
31    24   6.3     1  31 black
32    82  67.0     2  32 black
33   166 157.0     2  33 black
34    68  56.0     2  34 black
35    87  72.0     2  35 black
36    58  47.0     2  36 black
37    30  24.0     2  37 black
38    52  42.0     2  38 black
39    18  12.0     2  39 black
40    37  31.0     2  40 black
41    51  43.0     2  41 black
42    65  53.0     2  42 black
43    71  59.0     2  43 black
44   144 121.0     2  44 black
45   131 112.0     2  45 black
46   117 109.0     2  46 black
47    31  23.0     2  47 black
48    59  41.0     2  48 black
49   123 104.0     2  49 black
50    96  81.0     2  50 black
51   145 113.0     2  51 black
52    99  76.0     2  52 black
53    86  68.0     2  53 black
54    91  72.0     2  54 black
55    39  31.0     2  55 black
56    40  32.0     2  56 black
57    61  55.0     2  57 black
58    82  61.0     2  58 black
59   111  95.0     2  59 black
60    57  45.0     3  60 black
61    29  16.0     3  61 black
62    33  22.0     3  62 black
"
df <- read.table(textConnection(txt), header = TRUE)
但我需要把它放在一个

当我以这种方式绘制时:

plot(df)
它需要绘制每一列,我只想显示
PM10
PM25
,作为每个rowid的“成对”显示的值


因此,我只想绘制一个带有
PM10
点和
PM25
点的绘图,每个点都将附加到rowid。如何执行此操作?

如果您使用package
dplyr
准备数据,请尝试使用package
ggplot2
绘制图形

我添加了一些
Month==12
的行,因为问题的数据中没有任何行。见下文

df2 <- df %>% 
  mutate(color = ifelse(Month == 12, "red", as.character(color)),
         color = factor(color, labels = c("Other", "12")),
         x = row_number())

ggplot(df2, aes(x = x, colour = color)) +
  geom_point(aes(y = PM10)) +
  geom_point(aes(y = PM25)) +
  scale_color_manual(name = "Month", values = unique(df2$color))

像这样
df%>%select(PM10,PM25)%>%matplot(pch=1)
?@ruibaradas是的,像这样,但是你知道我如何使用
plot()
函数来实现它,这可能吗?之后,我需要对数据进行一些操作,并需要使用不同的颜色,简单地说,我对绘图感觉更好。但是是的,有点像这样。非常感谢@RuiBarradas我使用了类似于
df[df$Month==12,]$color=“red”
的东西来获得不同的效果,但当我试图在
matplot()中使用它时,它不起作用。像这样
df%>%select(PM10,PM25)%>%matplot(pch=1,col=df$color)
是好的,还是需要使用其他方法将12月变成红色?也许您正在寻找
功能?对第一行使用
绘图
,然后添加一行
.Alrigh!!谢谢,我找到了函数点(),谢谢你!这就是我所需要的,甚至我可以添加越来越多的专栏,很好!yee这是我想要的,但当我删除shape=Month时,它工作正常,建议的形状不工作,无论如何,它不是我想要的颜色。如果我很清楚在
plot()
?@Potato中制作是不可能的,这不是不可能的,但是
ggplot
是使用
dplyr
@Potato的自然方式查看编辑,我相信这是您想要的。
plot(df)
df2 <- df %>% 
  mutate(color = ifelse(Month == 12, "red", as.character(color)),
         color = factor(color, labels = c("Other", "12")),
         x = row_number())

ggplot(df2, aes(x = x, colour = color)) +
  geom_point(aes(y = PM10)) +
  geom_point(aes(y = PM25)) +
  scale_color_manual(name = "Month", values = unique(df2$color))
sp <- split(df, df$Month)[[1]]
sp[['Month']] <- 12
sp[['PM10']] <- jitter(sp[['PM10']])
sp[['PM25']] <- jitter(sp[['PM25']])
df <- rbind(df, sp)