簡體   English   中英

如何顯示我的 PCA 圖?

[英]How can I get my PCA plot graph to display?

因此,我正在嘗試構建一個 PCA 圖,但由於某種原因在獲取該圖后,我無法顯示我的圖。 我該如何解決這個問題。

import pandas as pd

X = pd.read_csv('ANNCitydata.csv')
# load dataset into Pandas DataFrame
X1 = X.drop(['ID','City'], axis=1)
y = pd.read_csv('ANNCitydata.csv', usecols=["City"])
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
principalComponents = pca.fit_transform(X1)
principalDf = pd.DataFrame(data = principalComponents
             , columns = ['principal component 1', 'principal component 2'])
finalDf = pd.concat([principalDf, y[['City']]], axis = 1)
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (10,10))
ax = fig.add_subplot(1,1,1) 
ax.set_xlabel('Principal Component 1', fontsize = 15)
ax.set_ylabel('Principal Component 2', fontsize = 15)
ax.set_title('2 component PCA', fontsize = 20)
targets = ['City']
colors = ['r', 'g', 'b']
for target, color in zip(targets,colors):
    indicesToKeep = finalDf['City'] == target
    ax.scatter(finalDf.loc[indicesToKeep, 'principal component 1']
               , finalDf.loc[indicesToKeep, 'principal component 2']
               , c = color
               , s = 100)
ax.legend(targets)
ax.grid()

所以我幾乎得到了一個空白圖表

同意@Hard Core。 剛剛修改了你的代碼。 它應該可以工作,但無法測試,因為我沒有原始數據。

import matplotlib.pyplot as plt
fig = plt.figure(figsize = (10,10))
ax = fig.add_subplot(1,1,1) 
ax.set_xlabel('Principal Component 1', fontsize = 15)
ax.set_ylabel('Principal Component 2', fontsize = 15)
ax.set_title('2 component PCA', fontsize = 20)
targets = ('City1', 'City2', 'City3')  ## Specify city names
colors = ('r', 'g', 'b')


for data, target, color in zip(finalDf,targets,colors):
    x, y = data.iloc[:,0:2]
    ax.scatter(x, y, alpha=0.8, c=color, edgecolors='none', s=100, label=target)
ax.legend(targets)
ax.grid()
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM