我在Rw /中看到了这个教程autoplot.他们绘制了负载和加载标签:
autoplot(prcomp(df), data = iris, colour = 'Species',
loadings = TRUE, loadings.colour = 'blue',
loadings.label = TRUE, loadings.label.size = 3)
Run Code Online (Sandbox Code Playgroud)
https://cran.r-project.org/web/packages/ggfortify/vignettes/plot_pca.html
我更喜欢Python 3w/matplotlib, scikit-learn, and pandas进行数据分析.但是,我不知道如何添加这些?
你怎么能用这些载体绘制matplotlib?
我一直在阅读使用sklearn在PCA中恢复explain_variance_ratio_的功能名称,但尚未弄清楚
这是我如何绘制它 Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn import decomposition
import seaborn as sns; sns.set_style("whitegrid", {'axes.grid' : False})
%matplotlib inline
np.random.seed(0)
# Iris …Run Code Online (Sandbox Code Playgroud) 我是python的新手,发现了这个出色的PCA双线图建议(绘制PCA加载和在sklearn中的双线图中加载(如R的自动绘图))。现在,我尝试为图例中的不同目标添加图例。但是该命令plt.legend()不起作用。
有一个简单的方法吗?例如,来自上面链接的虹膜数据和双标码。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA
import pandas as pd
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
X = iris.data
y = iris.target
#In general a good idea is to scale the data
scaler = StandardScaler()
scaler.fit(X)
X=scaler.transform(X)
pca = PCA()
x_new = pca.fit_transform(X)
def myplot(score,coeff,labels=None):
xs = score[:,0]
ys = score[:,1]
n = coeff.shape[0]
scalex = 1.0/(xs.max() - xs.min())
scaley = 1.0/(ys.max() - …Run Code Online (Sandbox Code Playgroud) 我正在使用下面的代码所示的autoplot函数,ggfortify使用iris.pca. 这个例子只有三个变量(因此有 3 个加载),但我的数据集有更多的变量,所以我希望我可以减少箭头的大小以使绘图更具可读性。我认为默认大小是 1 pt,我想把它降到 0.5 之类的东西。虽然有修改加载颜色和标签大小的参数,但我找不到调整箭头粗细的方法。有谁知道如何做到这一点?
library(ggplot2)
library(ggfortify)
df <- iris[c(1, 2, 3, 4)]
iris.pca<-(prcomp(df))
autoplot(iris.pca, data=iris, colour="Species", loadings=TRUE, loadings.colour = "black")+
scale_colour_manual(values=c("forestgreen","red","blue"))+
scale_fill_manual(values=c("forestgreen","red","blue"))+
scale_shape_manual(values=c(25,22,23))+
theme_bw()
Run Code Online (Sandbox Code Playgroud) 我正在尝试可视化包含 87 个变量的 PCA。
prc <-prcomp(df[,1:87], center = TRUE, scale. = TRUE)
ggbiplot(prc, labels = rownames(df[,1:87]), var.axes = TRUE)
Run Code Online (Sandbox Code Playgroud)
当我创建双图时,许多向量相互重叠,导致无法读取标签。我想知道是否有什么方法可以一次只显示一些标签。例如,我认为如果我可以创建几个单独的双图,每个双图仅显示向量上标签的子集,那将会很有用。
这个问题似乎密切相关,但我不知道它是否转换为最新版本的ggbiplot。我也不知道如何修改原来的功能。
biplot ×4
pca ×3
python ×2
r ×2
ggbiplot ×1
ggfortify ×1
ggplot2 ×1
legend ×1
matplotlib ×1
scikit-learn ×1