一个matplotlib 画K线图 +一个高效的画图工具Serborn






http://www.financecomputing.net/wordpress/?p=1047




Seaborn

Matplotlib是Python主要的绘图库。但是,我不建议你直接使用它,原因与开始不推荐你使用NumPy是一样的。虽然Matplotlib很强大,它本身就很复杂,你的图经过大量的调整才能变精致。因此,作为替代,我推荐你一开始使用Seaborn。Seaborn本质上使用Matplotlib作为核心库(就像Pandas对NumPy一样)。我将简短地描述下seaborn的优点。具体来说,它可以:

  1. 默认情况下就能创建赏心悦目的图表。(只有一点,默认不是jet colormap
  2. 创建具有统计意义的图
  3. 能理解pandas的DataFrame类型,所以它们一起可以很好地工作。

虽然anaconda预装了pandas,却没安装seaborn。可以通过conda install seaborn轻松地安装。

具有统计意义的图

In [5]:
In [7]:
 
如你所见,仅通过一行代码,我们就创建了一个漂亮复杂的统计图,其中包含拥有置信区间的最拟合回归直线、边界图,以及相关系数。使用matplotlib重新绘制这幅图的话需要相当多的(丑陋)代码,包括调用scipy执行线性回归并手动利用线性回归方程绘制直线(我甚至想不出怎么在边界绘图,怎么计算置信区间)。上面和下面的例子都摘自教程“ the tutorial on quantitative linear models”。

与Pandas的DataFrame很好地工作

数据有自己的结构。通常我们感兴趣的包含不同的组或类(这种情况下使用pandas中groupby的功能会让人感到很神奇)。比如tips(小费)的数据集是这样的:

In [9]:
Out[9]:
 total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4

我们可能想知道吸烟者给的小费是否与不吸烟的人不同。没有seaborn的话,这需要使用pandas的groupby功能,并通过复杂的代码绘制线性回归直线。使用seaborn的话,我们可以给col参数提供列名,按我们的需要划分数据:

In [11]:
 

 

很整洁吧?

随着你研究得越深,你可能想更细粒度地控制这些图表的细节。因为seaborn只是调用了matplotlib,那时你可能会想学习这个库。然而,对绝大部分工作来说我还是喜欢使用seaborn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值