python中如何在聚类后将结果在一张图中用不同形状表示出来?

刚学python不久,目前正在学习聚类,聚类后如何将聚类结果图形化呢?
我自己找的方法只能分为不同颜色,但是我想要不同形状,贴下关键代码吧。

sampleArray = D.loc[:,['1','2','3']].values

kmeans = KMeans(n_clusters=4, random_state=0,n_init=10,verbose=True).fit(sampleArray)

以上是聚类的代码。

D.plot.scatter(x='1',
                y='2',
              c=kmeans.labels_,
                 cmap='viridis_r',
               norm=None, s=50)
plot.show()

以上是我目前画图的代码,这个是我在网上学习的,只能显示渐变颜色,但是我想要显示4种不同形状(4个聚类中心),该怎么做?

import matplotlib.pyplot as plt

sampleArray = D.loc[:,['1','2','3']].values

kmeans = KMeans(n_clusters=4, random_state=0,n_init=10,verbose=True).fit(sampleArray)

fig, ax = plt.subplots()

for i in range(len(kmeans.labels_)):
    if kmeans.labels_[i] == 0:
        ax.scatter(sampleArray[i,0], sampleArray[i,1], marker='o', color='blue')
    elif kmeans.labels_[i] == 1:
        ax.scatter(sampleArray[i,0], sampleArray[i,1], marker='s', color='red')
    elif kmeans.labels_[i] == 2:
        ax.scatter(sampleArray[i,0], sampleArray[i,1], marker='^', color='green')
    elif kmeans.labels_[i] == 3:
        ax.scatter(sampleArray[i,0], sampleArray[i,1], marker='*', color='purple')

plt.show()