前言
Python 的绘图功能非常强大,如果能将已有的绘图库和各种复杂操作汇总在一个自己写的库/包中,并实现一行代码就调用并实现复杂的绘图功能,那就更强大了。所以本博文只强调绘图代码的实现,绘图中的统计学知识(名义变量,数值变量,xx图与xx图的区别等等)与 Python 基础库操作(seaborn,matplotlib)并不会提及。
实现效果
夸张了吧,上面的这个破图也好意思叫复杂绘图?可能会有不少朋友这样想,可以理解,下面来拆解一下知识点与呈现绘图代码。
绘图分析
宏观来看
- 图片大小怎么弄的
- 图片的颜色还是蛮柔和的嘛,淡蓝色(经典 R 语言的三配色淡蓝,浅紫,浅绿之一,美丽值大增)
- x,y 轴的坐标我也没看你设置啊,怎么自动就标好了
- 同等条件的正态曲线怎么生成的?黑色对比起来也不错
细节来看
- 图例生成得恰到好处啊,位置摆放也不错
- 边框怎么隐去得这么完美,让我的视野更加聚焦了,左上右三边的边框都去掉了欸
- x 轴好像也不错,没有紧紧贴住图形,而是向下偏移了一点
- 背景的网格线让我能更好的比对数据了欸
纳米细节来看
- 我以前听说 seaborn 绘图在生成中文方面会有困难,有时候坐标轴如果是负数的话会生成 bug 框框,这个怎么解决呢?
- 整体绘图背景好像也可以调整,比如图中的是 seaborn 经典的白色网格底,好像还可以调成 R 语言绘图风格的 ggplot,其他阴影什么的
- 坐标轴,图例,标题等等的字体设置也有玄机,字号和样式的选择难道也不用设置嘛?
上面只是我暂时所能想到的细节,其实都封装在自己写好绘图库 myplots 中了。但绘图代码并不是自己创作的,而是从前人和各种大神的代码中学习积累并根据实际需求修改来的,为了画出一幅还比较完美的图,已经踩过无数的坑了。