- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 autoplot() 制作了一个 PCA 图,但我想只在其中 2 个组周围有椭圆,而不是所有 3 个组。因此我切换到 ggplot。但是,我的轴在 autoplot 和 ggplot 方法之间似乎有所不同。看看p1和p2的区别:
library(ggplot2)
library(ggfortify)
library(tidyr)
x <- iris[1:4]
pc <- prcomp(x)
df <- cbind(pc$x[,1:2], iris[,5]) %>% as.data.frame()
df$PC1 <- as.numeric(df$PC1)
df$PC2 <- as.numeric(df$PC2)
df$V3 <- as.factor(df$V3)
#ggplot method
p1 <- ggplot(df, aes(PC1, PC2, colour = V3)) +
geom_point(size = 3, aes(shape = V3)) +
stat_ellipse(geom = "polygon", aes(fill = after_scale(alpha(colour, 0))),
data = df[df$V3 == "1" | df$V3 == "2",], size = 1)
p1
#autoplot method
y <- prcomp(x)
x2 <- as.data.frame(cbind(x, iris[,5]))
x2$`iris[, 5]` <- as.factor(x2$`iris[, 5]`)
p2<- autoplot(y,
data = x2,
colour = 'iris[, 5]',
label = F,
shape = 'iris[, 5]',
size = 2)
p2
Created on 2022-02-22 by the reprex package (v2.0.1)
为什么我会得到不同的轴?
最佳答案
在自动绘图方法中,主成分被缩放,因此要获得相同的结果,您可以这样做:
x <- iris[1:4]
pc <- prcomp(x)
df <- cbind(pc$x[,1:2], iris[,5]) %>% as.data.frame()
df$PC1 <- as.numeric(df$PC1) / (pc$sdev[1] * sqrt(nrow(iris)))
df$PC2 <- as.numeric(df$PC2) / (pc$sdev[2] * sqrt(nrow(iris)))
df$V3 <- as.factor(df$V3)
#ggplot method
p1 <- ggplot(df, aes(PC1, PC2, colour = V3)) +
geom_point(size = 3, aes(shape = V3)) +
stat_ellipse(geom = "polygon", aes(fill = after_scale(alpha(colour, 0))),
data = df[df$V3 == "1" | df$V3 == "2",], size = 1)
p1
关于r - prcomp 之后 ggplot2 和 autoplot() 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71221048/
以下代码工作正常: library(ggfortify) autoplot(lm(Petal.Width ~ Petal.Length, data = iris), label.size = 3) 然
我希望能够调整加载标签的位置,以便它们不会落在箭头上方。但不知道哪里需要调整。 geom_text 可用于调整站点位置的位置,但我找不到矢量存储在 str(g) 中的位置。 library(ggplo
根据文档,microbenchmark:::autoplot“使用 ggplot2 生成更清晰的微基准计时图表。” 酷!让我们尝试一下示例代码: library("ggplot2") tm 答案越长
我正在使用自动绘图为回归模型绘制诊断图。我想为图表添加一个通用的单一标题。 例如: library(ggfortify) autoplot(lm(Petal.Width ~ Petal.Length,
我正在创建一个 ts 对象,然后尝试通过自动绘图运行它。执行给我一个错误: autoplot(pts, facets = TRUE) Error: Objects of type mts/ts/mat
我有一个包含 2285 个观测值的数据集“bc”,两个变量:“日期”和“价格”。 'data.frame': 2285 obs. of 2 variables: $ Date : Date,
我用 autoplot() 制作了一个 PCA 图,但我想只在其中 2 个组周围有椭圆,而不是所有 3 个组。因此我切换到 ggplot。但是,我的轴在 autoplot 和 ggplot 方法之间似
我正在尝试使用 ggfortify 来可视化我使用 prcomp 所做的 PCA 结果。 示例代码: iris.pca <- iris[c(1, 2, 3, 4)] autoplot(prcomp(i
我正在使用 mlr3 包,我想绘制不同模型的 ROC 曲线。如果我按照 documentation 中的说明使用交叉验证它工作得很好,但是如果我使用“holdout”进行重采样,那么我会得到一个错误
我在 Shiny 的应用程序中使用函数 ggplot2::autoplot 和一个 lm 对象。 这要归功于 ggfortify 包。 在我 Shiny 的应用程序中,我还使用了 shinyjs。 在
我正在尝试向 survMisc 生成的生存图添加额外的行,但是我无法让它工作 - 问题是最后一行。 data(kidney, package="KMsurv") s1 <- survfit(Surv(
我在 Shiny 的应用程序中使用函数 ggplot2::autoplot 和一个 lm 对象。 这要归功于 ggfortify 包。 在我 Shiny 的应用程序中,我还使用了 shinyjs。 在
我有一个 data.table有一列有一些值的预测,我想用 ggplot2::autoplot 保存每个预测的图. 我正在尝试这个(可重复的例子): require(data.table) requi
我是一名优秀的程序员,十分优秀!