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")

输出时会发现列显示不完全,中间有省略号代替,如下图所示:
python3数据分析与挖掘建模:数据可视化——直方图、折线图、饼图_第1张图片
此时我们并不能掌握这个数据中到底包含什么,所以我们要让中间的列显示完全,向代码中增添两行:

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

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

异常值删除

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

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

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()

绘制结果如下:
python3数据分析与挖掘建模:数据可视化——直方图、折线图、饼图_第4张图片

折线图(sns.pointplot)

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

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

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

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

饼图(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()

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

normalize

以百分比的形式展示
python3数据分析与挖掘建模:数据可视化——直方图、折线图、饼图_第8张图片

有帮助的话,点个赞再走吧~

你可能感兴趣的:(可视化,python,数据分析)