打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在一个杂碎的小片段中,参悟可视化

从事数据分析这份职业的每个人都会有一场博弈:数据重要还是分析重要。

有的人觉得数据重要,没有合适的数据,拿什么去分析?数据获取、数据清洗、数据读写等各个环节也都是技术和经验的积淀;有的人觉得分析重要,数据的各式处理,换个人能做到,在可预见的将来,机器也能做到,而分析,特别是有经验的分析,不是那么可替代的。

我不评论哪方重要。但有一点你得明白,不论是数据的处理还是分析,一个优秀的数据分析师,是要在这些个操作过程中注入自己的思维、经验、智谋的

如果你拿到一堆数据,依葫芦画瓢的预处理、可视化,而非根据实际的情况选用合适的数据分析模型和方法,那么,你始终都get不到这份职业的快感与激爽!

今天的文章,我就之前做数据可视化展示的一个小片段,做做总结。

我的第一篇数据分析类文章,是一份成都地区测试和数据分析岗的对比报告,意图窥探在成都做数据分析的大环境:

做数据分析前,先来场职业大PK

由于之前没有实操,没有经验,我在其中一个对比项“工作经验和薪资水平”卡壳许久:

遇到的问题一:可视化工具的选择

我觉得一个二维的对比,不会太复杂,直接祭出Tableau来制图。

可能当时状态不佳,而且用的还是老版本(mac系统,免费的只找到了8.2版),却非要死磕,不仅无果,还花了大把时间。

然后转战python,用matplotlib包,用seaborn包,用pyecharts,最后用到pyecharts的箱型图和seaborn的散点图,才达到我的预期。

遇到的问题二:未事先规划

虽然我想要一个薪资随经验增长的规律图,但并未深入思考图形可视化的可行性,一开始便选择方向,觉得折线图是最好的表达方式。

殊不知,工作经验、薪资、及对应的数量(eg:工作经验1-3年,薪水为15k的职位的数量),本就构成了三维数据,而采用二维的图形(折线图)是无法表达的。

于是,我踩了这些坑。

 踩坑 1  

我以工作年限为横坐标,数量为纵坐标,结果出来的图是这样的。

WTF?

这么多条线是什么,这个图表能表达什么?(线条是不同的工资梯度,eg:10k/15k等)

卒。

 踩坑 2  

x轴换成工资梯度如何?

图森破。

更加魔幻了。

卒。

 踩坑 3  

听说散点图是个不错的选择。于是我用了pyecharts。

OMG。

这是贪吃蛇吗?

读完了pyecharts的接口文档,也没找到可以优化为我想要的样式的方法。

卒。

 踩坑 4  

最后箱型图拯救了我。

But,数据怎么少了一块,工作经验为5-10年的,明明有数据!

我记得当时,走到此处,已过凌晨,本着不肯认输的精神,我原地死磕了1个多小时,依然无果,抱憾而眠。

结果...

第二天起来,10分钟就解决了问题。

原来:

1、pyecharts的箱型图,在0值(1年以下工作经验的数据为0)存在的情况下,后面的数据会向前填充,导致图形紊乱。

2、箱型图本身,每一个x轴,最少需要必须要3个数据

所以,我在代码里进行了如下处理:

# 箱形图实测有两处坑:
# 1、如果某值的df为空,需要特殊处理,填充pd.series,否则图形混乱
# 2、必须保证箱形图的单个y坐标,最低有3个数值[0,0,0],如果有少于3个,则会被覆盖,图形混乱
Years = ['应届毕业生','不限','1年以下','1-3年','3-5年','5-10年']y_test = []
y_analy = []
for j in Years:
analy_data = analy_datas.loc[analy_datas['workYear']==j]
test_data = test_datas.loc[test_datas['workYear']==j]
if analy_data.empty == 1 :
y_analy.append(pd.Series([0,0,0]))
y_test.append(test_data['average'])
elif test_datas.empty == 1 :
y_test.append(pd.Series([0,0,0]))
y_analy.append(analy_data['average'])
else:
y_test.append(test_data['average'])
y_analy.append(analy_data['average'])

图表也就完成了。

(具体分析不再赘述,详情可见文章做数据分析前,先来场职业大PK

所以此坑让我知道,遇到问题不要死磕,学学一休:休息,休息一会儿。

 踩坑 5  

其实最好的,还是散点图来表示。因为箱型图的阅读和分析需要统计学基础。

pyecharts的散点图无法满足需求,其他的包可以吗?

因此我用了seaborn。

图表的展示是比较明朗,但是因为seaborn包在mac系统中文显示乱码的问题不好处理,且x轴展示的顺序,我也无法尽情控制,所以使用效果打个折扣。

来了这么一遭,我深刻的认识到,在合适的时候选用合适的方法进行合适的可视化展示,是多么重要!这既是经验的积淀,也是努力的回报。

不过,我即将面对的,远没这样简单。

我突然想到,将箱型图和散点图展示给不懂图表的人,有区别吗?

没有,分析的最终结果,是要用局外人能听懂的语言进行表达。

可这又涉及到文笔、沟通、演讲上面的技巧了。

所以,你以为战胜了图表,就通向了罗马,然而事实却是,脱离于现实环境的分析,不过是一场场小打小闹。

300多年前,中年的笛卡尔阐述了“我思故我在”的哲学命题。当我怀疑,当我否定,当我思考的时候,证明我是存在的。

唯物or唯心?不重要。

重要的是保持怀疑,保持思考,保持该保持的一切,不就是做数据分析的一种态度吗?

转载请注明来源

封面 unsplash.com

看这里!看这里!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
自从Python数据可视化出了这个模块后,数据可视化就再简单不过了
Python|可视化数据分析之公众号得分
据说这是史上最牛逼的可视化神器
教你用pyecharts制作交互式桑基图,赶快学起来吧!
数据可视化神器:Pyecharts
@Python 程序员,如何实现狂拽酷炫的 3D 编程技术?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服