簡體   English   中英

使用 matplotlib 為 y=0 和 y=1 繪制不同顏色的散點圖

[英]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通過布爾掩碼和列01選擇 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)

或者將DataframeSeries值轉換為 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.

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