之前参加了Kesci网举办的中国联通“沃+海创”开放数据应用大赛,在比赛中认识了许多大牛,同时也认识了Kesci平台的一位李哥。应李哥邀请,帮他们推广一下该平台的实验室,前段时间由于自己事情太多,直到最近才闲下来,遂做了一下整理。
尝试了一下这个在线实验室,不需要自己的线下的环境,可以在线编程。类似jupter notebook,你还可以将自己的ipynb文件从线下导入,方便快捷。它的公开数据集也相当丰富,有Iris、MovieLens、Titanic等数据集。在创建项目的时候,选择你需要的公开数据集即可,它也支持私有数据,然后它会提示你已挂载数据集的路径。
关于线上的操作向导说明:
# 查看当前挂载的数据集目录
!ls /home/kesci/input/
# 查看个人持久化工作区文件
!ls /home/kesci/work/
# 查看当前kernerl下的package
!pip list --format=columns
# 加载数据分析常用库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
% matplotlib inline
对于以上这四段代码向导,最重要的就是第三段了。package是我们当前在线实验室所能支持的所有工作内容。我们还发现package还包括了seaborn、pyecharts、tensorflow、xgboost等,果然是一款强大的在线分析工具。
在利用seaborn可视化来分析Iris数据集之前,我们先对数据字段进行介绍:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
... ... ... ... ... ...
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
- sepal_length:花萼长度,单位cm
- sepal_width:花萼宽度,单位cm
- petal_length:花瓣长度,单位cm
- petal_width:花瓣宽度,单位cm
- 种类:setosa(山鸢尾),versicolor(杂色鸢尾),virginica(弗吉尼亚鸢尾)
我们以Stripplot(细条图)为例
Stripplot的本质就是把数据集中具有定量(quantitative)属性的变量按照类别去做散点图(Scatterplot)。于是,我们将纸鸢花数据集中不同种类花的sepal length做stripplot可视化,代码如下:
import seaborn as sns
plt.figure(1,figsize=(12,6))
plt.subplot(1,2,1)
sns.stripplot(x='Species',y='Sepal.Length',data=iris) #stripplot
plt.title('Striplot of sepal length of Iris species')
with sns.axes_style("whitegrid"): # 这个是临时设置样式的命令,如果不写,则按默认格式'darkgrid'进行绘制
plt.subplot(1,2,2)
plt.title('Striplot of sepal length of Iris species')
sns.stripplot(x='Species',y='Sepal.Length',data=iris,jitter=True) # jitterplot
plt.show()
上边左侧的图片便是在默认风格下用stripplot绘制的散点图。在很多情况下,stripplot中的点会重叠,使得我们不容易看出点的分布情况。一个简单的解决办法就是用在stripplot的基础上绘制抖动图(jitterplot),仅沿着类别坐标轴的方向去随机微调整点的位置,显示出分布情况。更多seaborn细节,请参考《seaborn可视化学习之 categorial visualization》
以上就是我在K-Lab平台上做的一些尝试,希望能给你一些帮助。