python3数据分析与挖掘建模:数据可视化——直方图、折线图、饼图

前言

数据为kaggle上下载的HR.csv
导入numpy、pandas、matplotlib、seaborn

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
读入数据
df=pd.read_csv("./data/HR.csv")

输出时会发现列显示不完全,中间有省略号代替,如下图所示:
在这里插入图片描述
此时我们并不能掌握这个数据中到底包含什么,所以我们要让中间的列显示完全,向代码中增添两行:

pd.set_option("max_columns",100000)
pd.set_option("max_colwidth",100000)

在这里插入图片描述

异常值删除

在这里插入图片描述

大致的观察数据会发现其中包含了一些很诡异的数据,这些异常数据的存在会使得整体数据的特征(如期望等)产生偏差,所以我们要将异常值删除。

df=df.dropna(axis=0,how="any")
df=df[df["last_level"]<=1]

axis=0 以行为单位,how="any"当行中出现NaN时,删除这一行。
axis=1以列为单位,how="all"当列中全为NaN时,删除这一列。

直方图(sns.histplot)

直方图与柱状图虽形似,但其含义并不相同,直方图表达的是连续变量的概率分布估计,直方图的面积是有意义的,而柱状图的面积没有意义。

df=df[df["last_evaluation"]<=1]
f=plt.figure()
f.add_subplot(1,3,1) # 一行三列第一个位置的图
sns.histplot(df["satisfaction_level"],bins=10,kde=True) # kde是直方图上面的分布曲线 False时不绘制曲线
f.add_subplot(1,3,2)
sns.histplot(df["last_evaluation"],bins=10,kde=True)  
plt.tight_layout()
f.add_subplot(1,3,3)
sns.histplot(df["average_monthly_hours"],bins=10,kde=True)
plt.show()

绘制结果如下:
在这里插入图片描述

折线图(sns.pointplot)

sub_df=df.groupby("time_spend_company").mean() # 按time_spend_company分组,其他列计算均值
sns.pointplot(sub_df.index,sub_df["left"]) # 横轴为时间,纵轴为离职情况
plt.show()

在这里插入图片描述

sns.pointplot(x="time_spend_company",y="left",data=df)
plt.show()

在这里插入图片描述

饼图(plt.pie)

lbs=df["department"].value_counts().index
explodes=[0.1 if i=="sales" else 0 for i in lbs]
plt.pie(df["department"].value_counts(normalize=True),explode=explodes,labels=lbs,autopct="%1.1f%%",colors=sns.color_palette("Reds"))
# 如果想得出计数占比,可以加参数 normalize=True
plt.show()

在这里插入图片描述

normalize

以百分比的形式展示
在这里插入图片描述

有帮助的话,点个赞再走吧~
  • 10
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值