r - ggplot (R) 中与已编辑实验室和 ylab 组合的散点图
问题描述
我想绘制一个 PCA 并且还想包括轴上的变化百分比。当我一张一张地做图时,这很好用。但我想将两个图都包含在一个图中,其中包含两个相邻的图和一个图例。
图书馆(“ggpubr”)
[b <- ggplot(table, aes(column_1, column2, col=ethnicity_type)) + geom_point()
#b <- b + scale_colour_manual(values = c("red", "blue"))
b <- b + coord_equal() + theme_light()
b + xlab(paste0("PC1 (", signif(pve$pve\[1\], 3), "%)")) + ylab(paste0("PC2 (", signif(pve$pve\[2\], 3), "%)"))
# Create a violin plot
c <- ggplot(table, aes(column_1, column_2, col=ethnicity_type)) + geom_point()
#b <- b + scale_colour_manual(values = c("red", "blue"))
c <- c + coord_equal() + theme_light()
c + xlab(paste0("PC1 (", signif(pve$pve\[1\], 3), "%)")) + ylab(paste0("PC3 (", signif(pve$pve\[3\], 3), "%)"))
figure <- ggarrange(b, c,
labels = c("A", "B"),
ncol = 2, nrow = 1,
common.legend = TRUE, legend="bottom")][1]
解决方案
如果我明白你想要什么,看起来你就快到了。我是这样做的:
set.seed(45301)
z1 <- rnorm(100)
z2 <- rnorm(100)
dat <- data.frame(
x1 = z1 + .5*rnorm(100),
x2 = z2 + .5*rnorm(100),
x3 = z1 + z2 + rnorm(100),
x4 = -z1 + .5*z1 + .6*rnorm(100),
x5 = .5*z1 + z2 + .7*rnorm(100),
ethnicity_type = factor(sample(1:3, 100, replace=TRUE),
labels = paste0("Group", 1:3))
)
library(dplyr)
library(ggpubr)
p <- princomp(scale(dat %>% select(contains("x"))))
pve <- list(pve = p$sdev^2/sum(p$sdev^2))
dat$column_1 <- p$scores[,1]
dat$column_2 <- p$scores[,2]
dat$column_3 <- p$scores[,3]
library(ggplot2)
b <- ggplot(dat, aes(column_1, column_2, col=ethnicity_type)) + geom_point()
#b <- b + scale_colour_manual(values = c("red", "blue"))
b <- b + coord_cartesian(xlim=c(-4,4), ylim=c(-4,4)) + theme_light()
b <- b + xlab(paste0("PC1 (", signif(pve$pve[1], 3), "%)")) + ylab(paste0("PC2 (", signif(pve$pve[2], 3), "%)"))
# Create a violin plot
c <- ggplot(dat, aes(column_1, column_3, col=ethnicity_type)) + geom_point()
#b <- b + scale_colour_manual(values = c("red", "blue"))
c <- c + coord_cartesian(xlim=c(-4,4), ylim=c(-4,4)) + theme_light()
c <- c + xlab(paste0("PC1 (", signif(pve$pve[1], 3), "%)")) + ylab(paste0("PC3 (", signif(pve$pve[3], 3), "%)"))
figure <- ggarrange(b, c,
labels = c("A", "B"),
ncol = 2, nrow = 1,
common.legend = TRUE, legend="bottom")
推荐阅读
- javascript - 如何在 javascript 中通过 html 动态调用对象
- algorithm - 找到两棵 AVL 树的中位数?
- python - PIP 不安装软件包
- c++ - 错误。没有重载函数“strcpy_s”的实例与参数列表匹配
- python - 使用 Django ORM 计算不同时区每天的事件类型
- javascript - Bootstrap 4导航栏导航项活动类不起作用
- php - 使用 PDO 将图像从 MySQL 数据库加载到 Bootstrap 轮播(fetchall 问题)
- python - 两组不相交区间的异或
- angular - Angular - 构建内部路由后不起作用 - 404错误
- laravel - 如何在 Laravel 中测试同时使用 `Storage::put()` 和 `Storage::temporaryUrl()` 的路由?