我无法在单个站点PCA因子图上添加分组变量省略号,其中还包括PCA可变因子箭头.
我的代码:
prin_comp<-rda(data[,2:9], scale=TRUE)
pca_scores<-scores(prin_comp)
#sites=individual site PC1 & PC2 scores, Waterbody=Row Grouping Variable.
#site scores in the PCA plot are stratified by Waterbody type.
plot(pca_scores$sites[,1],
pca_scores$sites[,2],
pch=21,
bg=point_colors[data$Waterbody],
xlim=c(-2,2),
ylim=c(-2,2),
xlab=x_axis_text,
ylab=y_axis_text)
#species=column PCA1 & PCA2 Response variables
arrows(0,0,pca_scores$species[,1],pca_scores$species[,2],lwd=1,length=0.2)
#I want to draw 'Waterbody' Grouping Variable ellipses that encompass completely,
# their appropriate individual site scores (this is to visualise total error/variance).
Run Code Online (Sandbox Code Playgroud)
我试图使用dataellipse,plotellipses和ellipse函数,但无济于事.无知就是赢得了这一点.如果我没有提供足够的信息,请告诉我.
数据(log10转换):
dput(data)
structure(list(Waterbody = structure(c(4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, …Run Code Online (Sandbox Code Playgroud) 使用ggord一个可以做出很好的线性判别分析ggplot2biplots(参见M. Greenacre的"实践中的Biplots"中的第11章,图11.5),如
library(MASS)
install.packages("devtools")
library(devtools)
install_github("fawda123/ggord")
library(ggord)
data(iris)
ord <- lda(Species ~ ., iris, prior = rep(1, 3)/3)
ggord(ord, iris$Species)
Run Code Online (Sandbox Code Playgroud)
我还想添加分类区域(显示为与其各自组相同颜色的实心区域,例如α= 0.5)或类别隶属度的后验概率(随后alpha根据此后验概率和相同颜色变化用于每个组)(可以这样做BiplotGUI,但我正在寻找ggplot2解决方案).谁会知道如何使用ggplot2,也许使用geom_tile?
编辑:下面有人询问如何计算后验分类概率和预测类别.这是这样的:
library(MASS)
library(ggplot2)
library(scales)
fit <- lda(Species ~ ., data = iris, prior = rep(1, 3)/3)
datPred <- data.frame(Species=predict(fit)$class,predict(fit)$x)
#Create decision boundaries
fit2 <- lda(Species ~ LD1 + LD2, data=datPred, prior = rep(1, 3)/3)
ld1lim <- expand_range(c(min(datPred$LD1),max(datPred$LD1)),mul=0.05)
ld2lim <- expand_range(c(min(datPred$LD2),max(datPred$LD2)),mul=0.05)
ld1 <- seq(ld1lim[[1]], ld1lim[[2]], length.out=300)
ld2 …Run Code Online (Sandbox Code Playgroud) 我正在使用一个圣职包ggplot2.现在我正在以传统方式构建biplots,负载用箭头表示.我也感兴趣的是使用校准轴并将加载轴表示为通过原点的线,并且加载标签显示在绘图区域外.在基础R中,这是在实现的
library(OpenRepGrid)
biplot2d(boeker)
Run Code Online (Sandbox Code Playgroud)
但我正在寻找ggplot2解决方案.有人会有任何想法如何实现这样的事情ggplot2吗?在绘图区域外添加变量名称可以像我想的那样完成,但是如何绘制绘图区域外的线段?
目前我所拥有的是
install.packages("devtools")
library(devtools)
install_github("fawda123/ggord")
library(ggord)
data(iris)
ord <- prcomp(iris[,1:4],scale=TRUE)
ggord(ord, iris$Species)
Run Code Online (Sandbox Code Playgroud)
负载在 ord$rotation
PC1 PC2 PC3 PC4
Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863
Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971
Run Code Online (Sandbox Code Playgroud)
如何通过原点,外部刻度和轴区域外的标签添加线条(可能包括上面为重叠标签应用的冷抖动)?
NB我不想关闭剪辑,因为我的一些情节元素有时可能会超出边界框
编辑:其他人之前显然问了一个类似的问题,尽管这个问题仍然没有答案.它指出,要在基地R中做这样的事情(虽然以一种丑陋的方式),人们可以这样做
plot(-1:1, -1:1, asp = 1, type = "n", xaxt = "n", yaxt = "n", xlab = "", ylab = "")
abline(a = 0, b = -0.75) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用prcomp和绘制主成分分析ggbiplot.我正在获取单位圆外的数据值,并且在调用之前无法重新调整数据prcomp,我可以将数据约束到单位圆.
data(wine)
require(ggbiplot)
wine.pca=prcomp(wine[,1:3],scale.=TRUE)
ggbiplot(wine.pca,obs.scale = 1,
var.scale=1,groups=wine.class,ellipse=TRUE,circle=TRUE)
Run Code Online (Sandbox Code Playgroud)
我在调用之前通过减去平均值并除以标准偏差来尝试缩放prcomp:
wine2=wine[,1:3]
mean=apply(wine2,2,mean)
sd=apply(wine2,2,mean)
for(i in 1:ncol(wine2)){
wine2[,i]=(wine2[,i]-mean[i])/sd[i]
}
wine2.pca=prcomp(wine2,scale.=TRUE)
ggbiplot(wine2.pca,obs.scale=1,
var.scale=1,groups=wine.class,ellipse=TRUE,circle=TRUE)
Run Code Online (Sandbox Code Playgroud)
ggbiplot 包安装如下:
require(devtools)
install_github('ggbiplot','vqv')
Run Code Online (Sandbox Code Playgroud)
输出任一代码块:

根据@Brian Hanson在下面的评论,我正在添加一个反映我想要获得的输出的附加图像.

我正在尝试使用R对我的数据进行PCA分析,我找到了这个很好的指南,使用prcomp和ggbiplot.我的数据是两种样本类型,每种类型有三个生物重复(即6行)和大约20000个基因(即变量).首先,使用指南中描述的代码获取PCA模型不起作用:
>pca=prcomp(data,center=T,scale.=T)
Error in prcomp.default(data, center = T, scale. = T) :
cannot rescale a constant/zero column to unit variance
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除该scale. = T部件,它工作正常,我得到一个模型.这是为什么,这是下面错误的原因?
> summary(pca)
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 4662.8657 3570.7164 2717.8351 1419.3137 819.15844
Proportion of Variance 0.4879 0.2861 0.1658 0.0452 0.01506
Cumulative Proportion 0.4879 0.7740 0.9397 0.9849 1.00000
Run Code Online (Sandbox Code Playgroud)
其次,绘制PCA.即使只是使用基本代码,我得到一个错误和一个空的情节图像:
> ggbiplot(pca)
Error: invalid 'rot' value
Run Code Online (Sandbox Code Playgroud)
这意味着什么,我该如何解决?是否与制作PCA的(非)规模有关,还是有所不同?我认为它必须与我的数据有关,因为如果我使用标准示例代码(下面),我会得到一个非常好的PCA图.
> data(wine)
> wine.pca=prcomp(wine,scale.=T)
> print(ggbiplot(wine.pca, obs.scale = 1, …Run Code Online (Sandbox Code Playgroud) 大家好,我有一个简单的问题,但我没能在任何教程中得到答案.我已经对一组数据进行了简单的主成分分析,然后使用biplot绘制我的数据.
CP <- prcomp(dat, scale. = T)
summary(CP)
biplot(CP)
Run Code Online (Sandbox Code Playgroud)
有了这个,我得到了我的数据在第一和第二组件方面的散点图.我希望按颜色分隔我的数据,表示R用红色绘制我的前20个数据,用蓝色绘制下20个数据.我不知道如何告诉R为这两组数据着色.任何帮助将非常感激.THKS!(我对R很新)
我试图安装的开发版本ggbiplot从Github.在安装过程中,我收到以下错误消息:
library(devtools)
install_github("ggbiplot", "vqv")
Installing github repo(s) ggbiplot/master from vqv
Installing ggbiplot.zip from https://github.com/vqv/ggbiplot/zipball
Installing ggbiplot
* checking for file 'C:\Users\Muhammad Yaseen\AppData\Local\Temp\Rtmpsx4n5u\vqv-ggbiplot-2623d7c/DESCRIPTION' ... OK
* preparing 'ggbiplot':
* checking DESCRIPTION meta-information ... OK
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
* looking to see if a 'data/datalist' file should be added
* building 'ggbiplot_0.5.tar.gz'
cygwin warning:
MS-DOS style path detected: C:/Users/MUHAMM~1/AppData/Local/Temp/Rtmpsx4n5u/ggbiplot_0.5.tar.gz
Preferred POSIX equivalent is: /cygdrive/c/Users/MUHAMM~1/AppData/Local/Temp/Rtmpsx4n5u/ggbiplot_0.5.tar.gz …Run Code Online (Sandbox Code Playgroud) 在示例ggbiplot脚本图中有3组,如何更改标记颜色和形状?
library(ggbiplot)
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, group=wine.class,
varname.size = 3, labels.size=3,
ellipse = TRUE, circle = TRUE) +
scale_color_discrete(name = '') +
geom_point(aes(colour=wine.class), size = 3) +
theme(legend.direction ='horizontal',
legend.position = 'top')
Run Code Online (Sandbox Code Playgroud) install.packages 中的警告:
\n\n包 \xe2\x80\x98ggbiplot\xe2\x80\x99 不可用(对于 R 版本 3.5.3)
\n\n尝试了我发现的安装此软件包的所有选项。这个版本的R不支持吗?我有其他方法在 RStudio 上使用 ggbiplot 吗?
\n有人知道如何更改点大小并仍然在下面的代码中保持组颜色?
只需将geom_point(size = 8)所有点的颜色更改为黑色即可.
码:
library(ggbiplot)
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
g <- ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
groups = wine.class, varname.size = 8, labels.size=10 , ellipse = TRUE, circle = TRUE)
g <- g + scale_color_discrete(name = '') #+ geom_point(size = 8)
g <- g + opts(legend.direction = 'horizontal',
legend.position = 'top')
print(g)
Run Code Online (Sandbox Code Playgroud)