r - 将 r 中每个分组变量的数据框的所有列绘制到一个图上
问题描述
D 亲爱的,给定以下数据框,我正在尝试绘制每列的值并按类型(有三组,alpha,beta,gamma)标记整体(彩色)。
换句话说,x 轴应显示 9 个点 (x100,x110....,x180),y 轴范围应为 0 到 2(每列取一个最大值从 0 到 2 的值)。
结果三行中的每一行都应突出显示三个分类变量中的每一个。
对数据框的格式表示歉意,我还没有弄清楚如何漂亮地输出它。
structure(list(Group.1 = c("alpha", "beta", "gamma"), x100 =
c(1.31729175522923,
0.985278656706214, 0.156200287397951), x110 = c(1.54471416538581,
0.915659603197128, 0.733224726747721), x120 = c(1.27778739808127,
0.813037838321179, 0.779596480540931), x130 = c(1.25000598328188,
0.488610395696014, 0.806707685347646), x140 = c(1.82296009687707,
1.16132276877761, 1.31973652262241), x150 = c(0.929914232343435,
1.41477890312672, 1.41652730805799), x160 = c(1.19612871715799,
0.801679770927876, 0.39746836386621), x170 = c(1.88860023999587,
1.03295020200312, 0.729622524231672), x180 = c(0.926427994389087,
1.20304362708703, 1.57529754098505)), row.names = c(NA, -3L),
class = "data.frame")
我正在尝试使用 ggplot(任何其他绘图方法都可以),但是在阅读 ggplot 函数的要求时,我很难理解是否应该创建一个值向量以用作 aes 参数 y?
提前致谢,
F
解决方案
要获得绘图所需的布局,您需要使用 pivot_longer 将 data.frame 转换为长格式。从那里你可以正常使用 ggplot 。要取消堆叠条形,请使用 position = dodge。
library(tidyverse)
data <- structure(list(Group.1 = c("alpha", "beta", "gamma"),
x100 = c(1.31729175522923, 0.985278656706214, 0.156200287397951),
x110 = c(1.54471416538581, 0.915659603197128, 0.733224726747721),
x120 = c(1.27778739808127, 0.813037838321179, 0.779596480540931),
x130 = c(1.25000598328188, 0.488610395696014, 0.806707685347646),
x140 = c(1.82296009687707, 1.16132276877761, 1.31973652262241),
x150 = c(0.929914232343435, 1.41477890312672, 1.41652730805799),
x160 = c(1.19612871715799, 0.801679770927876, 0.39746836386621),
x170 = c(1.88860023999587, 1.03295020200312, 0.729622524231672),
x180 = c(0.926427994389087, 1.20304362708703, 1.57529754098505)),
row.names = c(NA, -3L),
class = "data.frame")
data %>%
pivot_longer(cols = contains("x"),
names_to = "data_points",
values_to = "vals") %>%
ggplot(aes(x = data_points, y = vals, fill = Group.1)) +
geom_col(position = "dodge")
由reprex 包(v0.3.0)于 2020 年 11 月 11 日创建
推荐阅读
- ios12 - 在 iOS12 中以编程方式检查蜂窝数据的开/关
- redirect - isomorphic-unfetch 302 响应在 IE11 中运行缓慢
- pandas - 如何合并两个连续的行并形成一个新列?
- java - JBOSS 7+ servlet 可以侦听/接管另一个子部署的请求吗?
- discord.js - 改变用户声音
- php - 修改代码以获取旧帖子上方的最新评论帖子
- kepler.gl - 如何更新 Kepler.gl MapBox 组件样式
- c - gettimeofday() 上的奇怪标记
- apache-spark - 在 SQL 中注册 Spark UDAF
- html - 悬停时模糊引导卡的图像