如何根据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。如何执行此操作?如果您使用packagedplyr
准备数据,请尝试使用packageggplot2
绘制图形
我添加了一些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)