[英]Plotting scatter graph using matplotlib for y=0 and y=1 with different colors
我一直在嘗試使用 matplotlib 繪制散點圖,其中我的 x 軸和 y 軸是兩個特征 X[0]、X[1],它應該繪制具有不同顏色的點,其中 y=0 和 y=1。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('F:/ex2data2.txt', sep=",", header=None)
X=df.iloc[:, :2]
y=df.iloc[:, 2]
def plotData(X,y):
fig=plt.figure()
pos = y==1
neg = y==0
plt.plot(X[pos, 0], X[pos, 1], 'k*')
plt.plot(X[neg, 0], X[neg, 1], 'ko')
plt.show()
plotData(X,y)
“plt.plot(X[pos, 0], X[pos, 1], 'k*') 和 plt.plot(X[neg, 0], X[neg, 1], 'ko')”顯示錯誤。 任何人都可以幫我解釋原因嗎?
使用DataFrame.loc
通過布爾掩碼和列0
或1
選擇 DataFrame :
X=df.iloc[:, :2]
y=df.iloc[:, 2]
def plotData(X,y):
fig=plt.figure()
pos = y==1
neg = y==0
plt.plot(X.loc[pos, 0], X.loc[pos, 1], 'k*')
plt.plot(X.loc[neg, 0], X.loc[neg, 1], 'ko')
plt.show()
plotData(X,y)
或者將Dataframe
和Series
值轉換為 numpy 數組:
X=df.iloc[:, :2].to_numpy()
y=df.iloc[:, 2].to_numpy()
#oldier pandas versions
#X=df.iloc[:, :2].values
#y=df.iloc[:, 2].values
def plotData(X,y):
fig=plt.figure()
pos = y==1
neg = y==0
plt.plot(X[pos, 0], X[pos, 1], 'k*')
plt.plot(X[neg, 0], X[neg, 1], 'ko')
plt.show()
plotData(X,y)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.