ggplot2 绘图如何保留原始的数据顺序?(2022.11.13更新)

这里以散点图图为例

p <- ggplot(data,aes(x,y))+
  geom_point(aes(color=group),shape=19,size=3.5) #设置点的颜色,大小和形状

如果这里直接用aes(color=group),那么这个group分的时候是根据你的data里面的是能够成为因子的数据进行分组的,而有时因子的水平的排列顺序并不是在表格中看到的顺序,例如

在表格中分组信息排序是S1,S2,...,S10,S11,S12

但实际因子水平是S1,S10,S11,S12,S2,....

可以采用以下代码查看分组信息的水平(level)

factor(data$group) #data为数据,group为数据的分组信息

之前想到的解决方法是下面这个,但是我自己也觉得这个方法麻烦,评论区uu也有这样的想法,这里更新一下,多一步代码的新的解决办法!!!!

(旧方法)解决方法:建一个factor(因子),规定level(水平),然后把这个factor作为颜色的映射

data$group <-factor(data$group,level=c("S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12"))
p <- ggplot(data,aes(x,y))+
  geom_point(aes(color=group),shape=19,size=3.5)

(New version!)思路一致,就是把数据中的横坐标赋值给level

这里显示的是data:

 

level <- data[,1]    #就多出这一步,不用手动打出来,直接赋值
data$x <- factor(data$x,level = level)
p <- ggplot(data,aes(x,y))+
     geom_point()

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 绘制分组箱线图是 ggplot2 包中常用的数据可视化方法之一。以下是用 R 语言ggplot2 包绘制分组箱线图的步骤: 1. 导入需要绘制箱线图的数据集。例如,假设我们有一个名为 `data` 的数据集,其中包含了两个因子变量 `group` 和 `category`,以及一个连续变量 `value`。 2. 使用 `ggplot()` 函数创建一个绘图对象,并使用 `geom_boxplot()` 函数添加箱线图图层。例如,代码如下: ``` library(ggplot2) ggplot(data, aes(x = group, y = value, fill = category)) + geom_boxplot() ``` 其中,`x` 参数指定箱线图中的因子变量,`y` 参数指定箱线图中的连续变量,`fill` 参数指定用于分组的因子变量。 3. 可以使用 `scale_fill_*()` 函数来更改填充颜色,其中 `*` 代表你想要的颜色变量,如 `scale_fill_brewer()`。例如: ``` ggplot(data, aes(x = group, y = value, fill = category)) + geom_boxplot() + scale_fill_brewer(palette = "Set1") ``` 其中 `palette` 参数指定所使用的调色板。 4. 可以添加其他元素来美化绘图,如标题、坐标轴标签等等。例如: ``` ggplot(data, aes(x = group, y = value, fill = category)) + geom_boxplot() + scale_fill_brewer(palette = "Set1") + labs(title = "分组箱线图", x = "组别", y = "数值") ``` 其中,`labs()` 函数用于添加标签和标题。 以上是用 R 语言ggplot2 包绘制分组箱线图的基本步骤。根据需要,你还可以进一步调整图形的各个方面来满足你的需求。 ### 回答2: 要使用R语言ggplot2包绘制分组箱线图,可以按照以下步骤进行操作: 步骤1:先安装和加载ggplot2包。可以使用以下代码安装并加载ggplot2包: install.packages("ggplot2") # 安装ggplot2包 library(ggplot2) # 加载ggplot2包 步骤2:准备数据。要绘制分组箱线图,需要准备包含分组变量和数值变量的数据集。可以使用data.frame()函数创建数据框。例如: data <- data.frame(group = rep(c("A", "B", "C"), each = 100), value = rnorm(300, 0, 1)) 步骤3:使用ggplot()函数创建绘图对象,并使用aes()函数设置x轴和y轴变量。例如: plot <- ggplot(data, aes(x = group, y = value)) 步骤4:使用geom_boxplot()函数添加箱线图的图层。例如: plot + geom_boxplot() 步骤5:可选的步骤,可以使用theme()函数和其他函数设置横轴标签、纵轴标签、标题等。例如: plot + geom_boxplot() + labs(x = "Group", y = "Value", title = "Grouped Boxplot") + theme(axis.text.x = element_text(angle = 45, hjust = 1)) 步骤6:运行代码并查看绘制的分组箱线图。 ### 回答3: 要使用R语言ggplot2包绘制分组箱线图,首先需要安装并加载ggplot2包。可以使用以下代码安装和加载ggplot2包: install.packages("ggplot2") library(ggplot2) 接下来,需要准备数据集。数据集应包含分组变量和数值变量。假设我们有一个包含三个组别(A、B、C)和一个数值变量(score)的数据集df。数据集可以通过以下代码创建: df <- data.frame(group = rep(c("A", "B", "C"), each = 100), score = rnorm(300, mean = 50, sd = 10)) 接下来,使用ggplot函数创建一个基础图层,并使用geom_boxplot函数添加箱线图的图层。使用aes函数将组别变量映射到x轴,将数值变量映射到y轴。设置fill参数来区分不同组别的箱线图。 ggplot(df, aes(x = group, y = score)) + geom_boxplot(fill = "lightblue") 然后,可以通过添加其他美化选项来自定义图形。例如,可以使用theme函数更改图表的主题,可以使用labs函数添加标题和轴标签。 ggplot(df, aes(x = group, y = score)) + geom_boxplot(fill = "lightblue") + theme_minimal() + labs(title = "分组箱线图", x = "组别", y = "分数") 最后,使用print函数打印图形。 print(ggplot(df, aes(x = group, y = score)) + geom_boxplot(fill = "lightblue") + theme_minimal() + labs(title = "分组箱线图", x = "组别", y = "分数"))

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值