R语言 对有两组的散点图使用不同的颜色/形状
在这篇文章中,我们将关注R编程语言中两组散点图的颜色/形状的不同方法。
R语言中的图可以用来对数据进行可视化分析。R中的ggplot2库被用来创建数据的可视化。该软件包可以通过以下命令下载并安装到工作空间。
install.packages("ggplot2")
数据框架可以用来包含以行和列排列的有组织的表格数据。列数据可以被分组。然后可以根据这些组中包含的值将数据点分类为参数段。
ggplot对象可以用来创建一个绘图对象。它也需要作为数据框架的列来绘制,参数是数据框架列中绘制属性的审美映射,如颜色、大小和形状。
该方法的语法如下。
ggplot(data , aes = )
参数:
- data – 要绘制的数据
- aes – 要使用的美学映射。
geom_point()方法可以被添加到ggplot对象中,以代表数据值的点的形式绘制数据。
使用geom_point()为不同组别对应的点着色
颜色参数可以被添加到ggplot对象的审美映射中,为数据点的值提供颜色。颜色参数可以分配给数据框的分组列,默认情况下,它为属于不同组的值分配不同的颜色。
ggplot(data, aes (...,colour = ))
# installing the reqd library
library("ggplot2")
# creating a data frame
data_frame <- data.frame(
col1 = c("g1","g2","g1","g1",
"g2","g1","g2","g2"),
col2 = 1:8,
col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
# plotting the col1 and col2 of data frame
# and assigning colors based on col1
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point()
输出
[1] "Data Frame"
> print(data_frame)
col1 col2 col3
1 g1 1 A
2 g2 2 B
3 g1 3 C
4 g1 4 D
5 g2 5 E
6 g1 6 F
7 g2 7 G
8 g2 8 H
改变绘图点的颜色
为了给数据点提供自定义的颜色,可以使用ggplot2包的一个方法,scale_color_manual。该方法可以用来获取十六进制以及字符串的颜色值矢量。然后,该向量被分配到该方法的数值参数中。矢量的长度应该与组的数量相等。然后,该方法根据数据框架的分组列分配不同的颜色。
scale_color_manual(values = col-vec)
参数:
- col-vec – 颜色向量
# installing the reqd library
library("ggplot2")
# creating a data frame
data_frame <- data.frame(
col1 = c("g1","g2","g1","g1",
"g2","g1","g2","g2"),
col2 = 1:8,
col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
# assigning colors to different grouped
# points
cols <- c("blue","orange")
# plotting the col1 and col2 of data frame
# and assigning colors based on col1
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point()+
# assigning customised colours to the plot
scale_color_manual(values = cols)
输出
[1] "Data Frame"
> print(data_frame)
col1 col2 col3
1 g1 1 A
2 g2 2 B
3 g1 3 C
4 g1 4 D
5 g2 5 E
6 g1 6 F
7 g2 7 G
8 g2 8 H
改变绘图点的形状
可以为绘图中的数据点指定不同的形状。默认情况下,圆圈被绘制到指定的点上。如果我们希望自定义形状,可以在geom_point()方法中指定形状编号值作为形状参数。例如,形状编号15用于构造正方形,而形状编号17则构造三角形。
geom_point(shape = )
# installing the reqd library
library("ggplot2")
# creating a data frame
data_frame <- data.frame(
col1 = c("g1","g2","g1","g1",
"g2","g1","g2","g2"),
col2 = 1:8,
col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
# assigning colors to different grouped
# points
cols <- c("blue","orange")
# plotting the col1 and col2 of data frame
# and assigning square based shape
ggplot(data_frame,aes(col1,col2,colour=col1))+geom_point(shape = 15)
输出
[1] "Data Frame"
> print(data_frame)
col1 col2 col3
1 g1 1 A
2 g2 2 B
3 g1 3 C
4 g1 4 D
5 g2 5 E
6 g1 6 F
7 g2 7 G
8 g2 8 H
根据绘制的点的组别来分配形状
如果我们希望以不同的形状以及颜色来绘制分组,我们可以在ggplot对象的美学映射中指定并使用这两个参数。形状和颜色可以分配给数据框架中的分组列。下面的代码片段将橙色的圆圈分配给组 “g1″,蓝色的三角形分配给组 “g2”
# installing the reqd library
library("ggplot2")
# creating a data frame
data_frame <- data.frame(
col1 = c("g1","g2","g1","g1",
"g2","g1","g2","g2"),
col2 = 1:8,
col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
# assigning colors to different grouped points
cols <- c("blue","orange")
# plotting the col1 and col2 of data frame and
# assigning square based shape
ggplot(data_frame,aes(col1,col2,colour=col1,shape=col1))+
geom_point()
输出
[1] "Data Frame"
> print(data_frame)
col1 col2 col3
1 g1 1 A
2 g2 2 B
3 g1 3 C
4 g1 4 D
5 g2 5 E
6 g1 6 F
7 g2 7 G
8 g2 8 H
然而,如果我们不把颜色参数分配给属于不同组的点,那么只有不同的形状被分配给不同的数据点以黑色。
# installing the reqd library
library("ggplot2")
# creating a data frame
data_frame <- data.frame(
col1 = c("g1","g2","g1","g1",
"g2","g1","g2","g2"),
col2 = 1:8,
col3 = LETTERS[1:8]
)
print ("Data Frame")
print(data_frame)
# assigning colors to different grouped
# points
cols <- c("blue","orange")
# plotting the col1 and col2 of data frame
# and assigning square based shape
ggplot(data_frame,aes(col1,col2,shape=col1))+
geom_point()
输出
[1] "Data Frame"
> print(data_frame)
col1 col2 col3
1 g1 1 A
2 g2 2 B
3 g1 3 C
4 g1 4 D
5 g2 5 E
6 g1 6 F
7 g2 7 G
8 g2 8 H