r - 如何根据R中的rowid在一个图中绘制两列
问题描述
我想仅用于绘制我的数据框中的一些列,但我不知道如何并且我不能排除未参与绘图的行。
这就是数据的样子:
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。我怎样才能做到这一点?
解决方案
如果您使用包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)
推荐阅读
- azure - Azure 逻辑应用 - 最大缓冲区大小
- html - 可点击的 TD,包括文本下方的垂直空间
- android - Flutter 应用在 Android 上启动时崩溃
- c# - 在 Android 上发现附近的智能手机设备
- java - 将按钮添加到包含 ListView 的 XML 文件
- python - 嵌套列表索引的问题
- ios - 将项目附加到字典中的数组不起作用
- python - Python 中的 nargin 功能(来自 Matlab)
- php - Guzzle HTTP 客户端和 Shopify 访问令牌异常
- string - 如何在 Perl 6 中打开字符串的文件句柄?