如何解决将数据框列名称添加到pca散点图中
我试图模仿使用R使用Python完成的散点图。 我可以计算PC1和PC2,将它们绘制成图也标记不同的观察结果,但是我想在图中添加列名以知道它们在图中的位置(应该是点而不是箭头),但是我认为没有直接的关系。用Python实现的方法。
这是与我想要获得的图类似的图: enter image description here
这是我到目前为止所能做的:
这是数据帧:
这是我到目前为止编写的代码:
d_pca = data.groupby("genus").sum()[[11,12,13]]
std_d_pca = scaler.fit_transform(d_pca)
pca = PCA()
pc = pca.fit_transform(std_d_pca)
d_pca['PC 1'] = pc[:,0]
d_pca['PC 2'] = pc[:,1]
from scipy import interpolate
x = pc[:,0]
y = pc[:,1]
n = d_pca.index[:7]
plt.figure(figsize=(19,10))
p1 = sns.scatterplot(x="PC 1",y="PC 2",data=d_pca,s=100)
texts = []
for x,y,s in zip(x,n):
texts.append(plt.text(x,s))
f = interpolate.interp1d(pc[:,0],pc[:,1])
x = np.arange(min(pc[:,0]),max(pc[:,0.0005)
y = f(x)
plt.xlabel("PC1 ({}%)".format((pca.explained_variance_ratio_[0] * 100).round()),fontsize="xx-large")
plt.ylabel("PC2 ({}%)".format((pca.explained_variance_ratio_[1] * 100).round()),fontsize="xx-large")
plt.title("Principal component analysis plot of 16S rRNA gene amplicon sequencing")
adjust_text(texts,x=x,y=y,autoalign='y',only_move={'points':'y','text':'y'},force_points=0.35,arrowprops=dict(arrowstyle="->",color='b',lw=0.88))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。