我只想绘制数据框中的某些列,但我不知道该怎么做,也不能排除没有参与绘制的行。
这就是数据的样子:
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)
一些代码准备锻炼我的数据框:
df <- data.frame(data)
df$Month <- as.numeric(format(data$date,format="%m"))
df <- df %>% select("PM10","PM25","Month") ##%>% mutate(row=row_number())
df$color <- 'black'
问题是我可以轻松地将它们绘制在两个不同的图中
plot (df$PM10)
par(new=TRUE)
plot (df$PM25)
但我需要将它合而为一...
以这种方式绘制图像时:
plot(df)
用每一列进行绘制,我只想显示PM10
和PM25
,作为将以成对形式显示的每个rowid的值。
因此,我只想绘制具有PM10
点和PM25
点的图,并且每个点都将附加到rowid。我该怎么办?
答案 0 :(得分:1)
如果您正在使用软件包dplyr
准备数据,请尝试使用软件包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))
使用Month == 12
的新数据。
sp <- split(df, df$Month)[[1]]
sp[['Month']] <- 12
sp[['PM10']] <- jitter(sp[['PM10']])
sp[['PM25']] <- jitter(sp[['PM25']])
df <- rbind(df, sp)