数据挖掘——数据可视化

数据获取

从本地读取iris数据集,将列名命名为:‘sepal length’, 'sepal width ', ‘petal length’,‘petal width’, ‘species’。

#数据获取
iris_data=pd.read_csv("iris.csv",header=None,names=['sepal length','sepal width',
                    'petal length','petal width','species'])

iris=pd.DataFrame(iris_data)
print(iris)

在这里插入图片描述

数据清理

1、查看数据行列情况,判断是否有空行,如果有则删除
2、查看空值情况

#数据的清理
#查询数据行列情况
print("数据集的行数为:",iris.shape[0])
print("数据集的列数为:",iris.shape[1])
#查询空行数目
print("每列空值的数目:\n",iris.isnull().sum())
print("*****")
print("存在空行数目:",iris.isnull().T.any().sum())
print("*****")
#删除空行数目
iris.dropna(axis=0,how="all",inplace=True)
#查看空值情况
print("删除空行后")
print("每列空值的数目:\n",iris.isnull().sum())
print("存在空行数目:",iris.isnull().T.any().sum())

# 获取数据集信息
# iris_data.info()

在这里插入图片描述

可视化

1、直方图展示各个维度的值分布情况;(20个分箱)

plt.suptitle("鸢尾花各维分布直方图")
#画花萼长度的分布直方图
plt.subplot(221)
plt.hist(iris_data['sepal length'],bins=20,edgecolor='black',alpha=0.7)
# 显示横轴标签
plt.xlabel("取值")
# 显示纵轴标签
plt.ylabel("计数")
# 显示图标题
plt.title("花萼长度的分布直方图")

#画花萼宽度的分布直方图
plt.subplot(222)
plt.hist(iris_data['sepal width'],bins=20,edgecolor='black',alpha=0.7)
# 显示横轴标签
plt.xlabel("取值")
# 显示纵轴标签
plt.ylabel("计数")
# 显示图标题
plt.title("花萼宽度的分布直方图")

#画花瓣长度的分布直方图
plt.subplot(223)
plt.hist(iris_data['petal length'],bins=20,edgecolor='black',alpha=0.7)
# 显示横轴标签
plt.xlabel("取值")
# 显示纵轴标签
plt.ylabel("计数")
# 显示图标题
plt.title("花瓣长度的分布直方图")

#画花瓣宽度的分布直方图
plt.subplot(224)
plt.hist(iris_data['petal width'],bins=20,edgecolor='black',alpha=0.7)
# 显示横轴标签
plt.xlabel("取值")
# 显示纵轴标签
plt.ylabel("计数")
# 显示图标题
plt.title("花瓣宽度的分布直方图")
#调整子图上下之间的间距
plt.subplots_adjust(hspace=0.5)
plt.show()

在这里插入图片描述
2、箱式图展示三类鸢尾花的petal_length属性值的分布情况

plt.suptitle("三类鸢尾花的petal_length属性值的分布情况")
sns.boxplot(x="species",y="petal length",data=iris)
plt.title("箱型图")
plt.show()
# print(iris.describe())

在这里插入图片描述3、在一个图中展示三种鸢尾花的petal_width属性的10个百分位折线图;

#产生间隔相等的10个实数
q=np.linspace(10,100,num=10)
# print(q)
#取出species值为1的sepal length值
sepal_length1=np.array(iris[iris['species']==1]['petal width'])
#np.percentile(sepal_length,q)取sepal_length的q百分位的值
plt.plot(q,np.percentile(sepal_length1,q),color='blue',linewidth=2.0)
#取出species值为2的sepal length值
sepal_length2=np.array(iris[iris['species']==2]['petal width'])
plt.plot(q,np.percentile(sepal_length2,q),color='red',linewidth=2.0)
#取出species值为3的sepal length值
sepal_length3=np.array(iris[iris['species']==3]['petal width'])
plt.plot(q,np.percentile(sepal_length3,q),color='green',linewidth=2.0)

plt.title("三种鸢尾花的petal_width属性的10个百分位折线图")
plt.legend([sepal_length1,sepal_length2,sepal_length3],labels=['山鸢尾花','杂色鸢尾花','佛及利亚鸢尾花'])

plt.show()

在这里插入图片描述4、在一个图中展示花萼长与宽的散点图;

#绘制散点图
plt.scatter(iris[iris['species']==1]['sepal length'],iris[iris['species']==1]['sepal width'])
plt.scatter(iris[iris['species']==2]['sepal length'],iris[iris['species']==2]['sepal width'])
plt.scatter(iris[iris['species']==3]['sepal length'],iris[iris['species']==3]['sepal width'])
plt.title('花萼长与宽的散点图', fontsize=24)
plt.xlabel('sepal length', fontsize=14)
plt.ylabel('sepal width', fontsize=14)
plt.show()

在这里插入图片描述

实验总结

本实验采用matplotlib对数据集iris进行预处理及可视化

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱文rr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值