一、鸢尾花散点图
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 数据准备
from sklearn import datasets
iris = datasets.load_iris()
x, y = iris.data, iris.target
pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),
columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])
print(pd_iris)
plt.figure(dpi=150) # 设置图的分辨率
# plt.style.use('Solarize_Light2') # 使用Solarize_Light2风格绘图 橘色加白色网格线
# plt.style.use('seaborn-white') #风格为全白
plt.style.use('seaborn') #风格为浅蓝色加白色网格线
iris_type = pd_iris['class'].unique() # 根据class列将点分为三类,获得三种类型[0. 1. 2.]
print(iris_type)
iris_name = iris.target_names # 获取每一类的名称
# print(iris_name)#['setosa' 'versicolor' 'virginica']
colors = ['#c72e29', '#098154', '#fb832d'] # 三种不同颜色
markers = ['$\clubsuit$', 'o', '^'] # 三种不同图形 #$\clubsuit$ ♣形状 '^'为三角形状
for i in range(len(iris_type)):
plt.scatter(pd_iris.loc[pd_iris['class'] == iris_type[i], 'sepal_length'], # 传入数据x
pd_iris.loc[pd_iris['class'] == iris_type[i], 'sepal_width'], # 传入数据y
s=50, # 散点图形(marker)的大小
c=colors[i], # marker颜色
marker=markers[i], # marker形状
# marker=matplotlib.markers.MarkerStyle(marker = markers[i],fillstyle='full'),#设置marker的填充
alpha=0.8, # marker透明度