终於进入到视觉化的部分了!虽然现在有很多的绘图软件,但我认为初期用python自己画出图,可以增强自己的编码能力。其实视觉化一直都是资料分析很重要的一环,我用下图举例,你就可以了解为什麽要做视觉化了。以下是我用卡方分配去挑选重要的特徵,得出来的结果。
假如你是个大学教授,学生在跟你报告的时候,你希望学生用一张图解释在资料中做了什麽发现了什麽(左图),还是贴出一张程序码逐行解释每一行的功用,最後又贴出一张程序码跑出来的分数(右图)呢?
我想绝大多数会选择左图吧,教授要看到的只是做出来的结果,而不是程序码怎麽执行的,就算程序coding有多厉害,没有搭配图表去解释你的结果,就不能算是一个好的报告。
有一些基本的统计工具及工具图必须要先了解,才能在画图的时候用对工具。
以铁达尼号资料集为例
资料集来源:https://www.kaggle.com/c/titanic/data
index_survived = (train_df["Age"].isnull()==False)&(train_df["Survived"]==1)
index_died = (train_df["Age"].isnull()==False)&(train_df["Survived"]==0)
sns.distplot( train_df.loc[index_survived ,'Age'], bins=20, color='blue', label='Survived' )
sns.distplot( train_df.loc[index_died ,'Age'], bins=20, color='red', label='Survived' )
以员工离职预测率重要程度为例
资料集来源:https://aidea-web.tw/topic/2f3ee780-855b-4ea7-8fc8-61f26447af1d
import seaborn as sns
fig = plt.figure(figsize=(10,12)) #画布大小
sns.barplot(a['Score'],a['Feature']) #前面是X轴你要放的特徵 ,後面是Y轴你要放的东西
以员工离职预测“任职前工作平均年数”画出盒须图
可以看到右边的点即为资料中的离群值
资料集来源:https://www.kaggle.com/djhavera/beijing-pm25-data-data-set
import seaborn as sns
sns.boxplot(train['任职前工作平均年数'])
画出每个天气特徵月的变化
资料集来源:https://www.kaggle.com/djhavera/beijing-pm25-data-data-set
plt.style.use("ggplot") # 使用ggplot主题样式
plt.xticks(day)
#画第多条线,plt.plot(x, y, c)参数分别为x轴资料、y轴资料、线颜色
plt.plot(e["month"],e["pm2.5"],c = colors[0])
plt.plot(e["month"],e["DEWP"],c = colors[1])
plt.plot(e["month"],e["TEMP"],c = colors[2])
plt.plot(e["month"],e["PRES"],c = colors[3])
plt.plot(e["month"],e["Iws"],c = colors[4])
plt.plot(e["month"],e["Is"],c = colors[5])
plt.plot(e["month"],e["Ir"],c = colors[6])
# 设定图例,参数为标签、位置
plt.legend(labels=['pm2.5', 'DEWP', 'TEMP', 'PRES', 'Iws', 'Is','Ir'], loc = 'best')
plt.xlabel("months", fontweight = "bold") # 设定x轴标题及粗体
plt.ylabel(" Average of feature", fontweight = "bold") # 设定y轴标题及粗体
plt.title("2014 months average change", fontsize = 15, fontweight = "bold", y = 1.1)
以天气资料为例,可以看到资料呈现负相关。
资料集来源:https://www.kaggle.com/djhavera/beijing-pm25-data-data-set
plt.scatter(df_weather1["Temperature"],df_weather1["RH"])
plt.xlabel("Temperature") #X轴标签
plt.ylabel("RH") #Y轴标签
plt.grid(True)
透过相关系数的计算,我们可以将它已图显示出来最。可以更快找到资料彼此之间的关联。
颜色越深代表关联性越高。
资料集来源:https://www.kaggle.com/djhavera/beijing-pm25-data-data-set
corr_pd = train.corr() #先算出资料间彼此的相关系数
#使用seaborn做视觉化
import seaborn as sns
import matplotlib.pyplot as plt
# 指定画幅
plt.figure(figsize=(8,6))
# 绘制热力图
sns.heatmap(corr_pd, cmap='YlGnBu')
其实网路上有很多大神画的图都很漂亮,可以去上面看他们提供的程序码,去研究他怎麽画出来的,以下是这些网站的介绍。
<<: 前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day7 处理注册登入的细节
>>: Day 07 「Tell. Don't Ask.」 测试与依赖:测行为
大家好! 相信各位都有看到标题了,今天开始就要实作函式库了。 我们进入今天的主题吧! jQuery ...
辛苦赚钱之余也记得要好好享受生活,让这辈子过得更有趣 在菲律宾和柬埔寨的那段时光,是我最惬意的人生...
今日加班加的凶, 不过希望加班加的有意义有价值, 很遗憾的是有时候却是补别人懒惰来的缺口, 排除负面...
昨天聊到小五郎叔叔脖子上的伤痕,今天要来聊日本的国民漫画航海王,大家有看过航海王的话想必对我们的主角...
python网路爬虫教学-Selenium基本操作 download chrome drive ht...