Python-鸢尾花分析(matplotlib,pandas)

Python鸢尾花分析(matplotlib,pandas)

Matplotlib

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

Pandas

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

散点图(借鉴)


import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 读取数据
data = pd.read_csv(r"C:\Users\CaoPengCheng\Desktop\Python\iris.csv")
# 为散点图颜色做数组
data['Category_num'] = data['Species'].map({
     'setosa': 55, 'versicolor': 9, 'virginica': 88})

print(data.head(), '\n')

# 查看特征组合对种类的区分效果
fig2 = plt.figure(2)
# scatter()方法
# x,y:输入数据,array_like,shape(n,)
# s:点的大小
#   标量或array_like,shape(n,),可选大小以点数^ 2。默认是rcParams ['lines.markersize'] ** 2。
# c:点的颜色
# 顺序或颜色顺序,可选,默认:‘b’ c可以是单个颜色格式的字符串,也可以是一系列颜色 规范的长度为N
# 或一系列N数字 使用通过kwargs指定的cmap和norm映射到颜色(见下文)。请注意,c不应该是单个数字RGB或RGBA序列,
# 因为这与数组无法区分值将被彩色映射。 c可以是一个二维数组,其中的行是RGB或RGBA,但是,包括单个的情况行为所有点指定相同的颜色。

plt.subplot2grid((3, 2), (0, 0))
# 设置X轴标签
plt.xlabel('Setal_length')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.scatter(data.Setal_length, data.Setal_width, c=data.Category_num)
plt.title("据萼片长度和宽度的种类分布图")

plt.subplot2grid((3, 2), (0, 1))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Petal_width')
plt.scatter(data.Petal_length, data.Petal_width, c=data.Category_num)
plt.title("据花瓣长度和宽度的种类分布图")

plt.subplot2grid((3, 2), (1, 0))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Setal_length')
plt.scatter(data.Petal_length, data.Setal_length, c=data.Category_num)
plt.title("据花瓣长度和萼片长度的种类分布图")

plt.subplot2grid((3, 2), (1, 1))
# 设置X轴标签
plt.xlabel('Petal_width')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.scatter(data.Petal_width, data.Setal_width, c=data.Category_num)
plt.title("据花瓣宽度和萼片宽度的种类分布图")

plt.subplot2grid((3, 2), (2, 0))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.scatter(data.Petal_length, data.Setal_width, c=data.Category_num)
plt.title("据花瓣长度和萼片宽度的种类分布图")

plt.subplot2grid((3, 2), (2, 1))
# 设置X轴标签
plt.xlabel('Petal_width')
# 设置Y轴标签
plt.ylabel('Setal_length')
plt.scatter(data.Petal_width, data.Setal_length, c=data.Category_num)
plt.title("据花瓣宽度和萼片长度的种类分布图")

plt.tight_layout()

plt.show()

Python-鸢尾花分析(matplotlib,pandas)_第1张图片

折现图(原创,较冗余)


import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 读取数据
data = pd.read_csv(r"C:\Users\CaoPengCheng\Desktop\Python\iris.csv")
i = 0
virginica_Setal_length_List = []
virginica_Setal_width_List = []
virginica_Petal_length_List = []
virginica_Petal_width_List = []

setosa_Setal_length_List = []
setosa_Setal_width_List = []
setosa_Petal_length_List = []
setosa_Petal_width_List = []

versicolor_Setal_length_List = []
versicolor_Setal_width_List = []
versicolor_Petal_length_List = []
versicolor_Petal_width_List = []

while i < 150:
    if data.Species[i] in 'setosa':
        setosa_Setal_length_List.append(data.Setal_length[i])
        setosa_Setal_width_List.append(data.Setal_width[i])
        setosa_Petal_length_List.append(data.Petal_length[i])
        setosa_Petal_width_List.append(data.Petal_width[i])
    if data.Species[i] in 'versicolor':
        versicolor_Setal_length_List.append(data.Setal_length[i])
        versicolor_Setal_width_List.append(data.Setal_width[i])
        versicolor_Petal_length_List.append(data.Petal_length[i])
        versicolor_Petal_width_List.append(data.Petal_width[i])
    if data.Species[i] in 'virginica':
        virginica_Setal_length_List.append(data.Setal_length[i])
        virginica_Setal_width_List.append(data.Setal_width[i])
        virginica_Petal_length_List.append(data.Petal_length[i])
        virginica_Petal_width_List.append(data.Petal_width[i])
    i = i+1

print(setosa_Setal_length_List)
print(versicolor_Setal_length_List)
print(virginica_Setal_length_List)

virginica_Setal_length_List.sort()
virginica_Setal_width_List.sort()
virginica_Petal_length_List.sort()
virginica_Petal_width_List.sort()

setosa_Setal_length_List.sort()
setosa_Setal_width_List.sort()
setosa_Petal_length_List.sort()
setosa_Petal_width_List.sort()

versicolor_Setal_length_List.sort()
versicolor_Setal_width_List.sort()
versicolor_Petal_length_List.sort()
versicolor_Petal_width_List.sort()

fig2 = plt.figure(5)

plt.subplot2grid((3, 2), (0, 0))
# 设置X轴标签
plt.xlabel('Setal_length')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.plot(setosa_Setal_length_List, setosa_Setal_width_List, color='red')
plt.plot(versicolor_Setal_length_List, versicolor_Setal_width_List, color='yellow')
plt.plot(virginica_Setal_length_List, virginica_Setal_width_List, color='blue')
plt.title("据萼片长度和宽度的种类分布图")

plt.subplot2grid((3, 2), (0, 1))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Petal_width')
plt.plot(setosa_Petal_length_List, setosa_Petal_width_List, color='red')
plt.plot(versicolor_Petal_length_List, versicolor_Petal_width_List, color='yellow')
plt.plot(virginica_Petal_length_List, virginica_Petal_width_List, color='blue')
plt.title("据花瓣长度和宽度的种类分布图")

plt.subplot2grid((3, 2), (1, 0))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Setal_length')
plt.plot(setosa_Petal_length_List, setosa_Setal_length_List, color='red')
plt.plot(versicolor_Petal_length_List, versicolor_Setal_length_List, color='yellow')
plt.plot(virginica_Petal_length_List, virginica_Setal_length_List, color='blue')
plt.title("据花瓣长度和萼片长度的种类分布图")

plt.subplot2grid((3, 2), (1, 1))
# 设置X轴标签
plt.xlabel('Petal_width')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.plot(setosa_Petal_width_List, setosa_Setal_width_List, color='red')
plt.plot(versicolor_Petal_width_List, versicolor_Setal_width_List, color='yellow')
plt.plot(virginica_Petal_width_List, virginica_Setal_width_List, color='blue')
plt.title("据花瓣宽度和萼片宽度的种类分布图")

plt.subplot2grid((3, 2), (2, 0))
# 设置X轴标签
plt.xlabel('Petal_length')
# 设置Y轴标签
plt.ylabel('Setal_width')
plt.plot(setosa_Petal_length_List, setosa_Setal_width_List, color='red')
plt.plot(versicolor_Petal_length_List, versicolor_Setal_width_List, color='yellow')
plt.plot(virginica_Petal_length_List, virginica_Setal_width_List, color='blue')
plt.title("据花瓣长度和萼片宽度的种类分布图")

plt.subplot2grid((3, 2), (2, 1))
# 设置X轴标签
plt.xlabel('Petal_width')
# 设置Y轴标签
plt.ylabel('Setal_length')
plt.plot(setosa_Petal_width_List, setosa_Setal_length_List, color='red')
plt.plot(versicolor_Petal_width_List, versicolor_Setal_length_List, color='yellow')
plt.plot(virginica_Petal_width_List, virginica_Setal_length_List, color='blue')
plt.title("据花瓣宽度和萼片长度的种类分布图")

plt.tight_layout()

plt.show()

Python-鸢尾花分析(matplotlib,pandas)_第2张图片

你可能感兴趣的:(Python,python,数据分析,机器学习)