美文网首页解密大数据
matplotlib API 简述(01) - Daily Py

matplotlib API 简述(01) - Daily Py

作者: 张利东 | 来源:发表于2017-08-07 09:20 被阅读48次
    matplotlib.png

    首发于微信公众号东哥夜谈。欢迎关注东哥夜谈,让我们一起聊聊个人成长、投资、编程、电影、运动等话题。
    本帐号所有文章均为原创。文章可以随意转载,但请务必注明作者。如果觉得文章有用,欢迎转发朋友圈分享。


    1. 缘起

    我们之前说过,matplotlib 相关概念很多,使用起来较为复杂,与其花大量的时间掌握这些东西,不如在有了需求的时候,直接去 gallery 里面找相应的代码复用。不过对于一些基础概念,还是应该掌握的。

    2. matplotlib 基础概念

    2.1 Figures and Subplots

    matplotlib 绘图的时候,是需要在一个figure对象上的axes对象上画。可以把figure当成一张画布,ax是在上面的可制图区域。那么首先需要生成这两个对象。

    fig1 = plt.figure()
    ax1 = fig1.add_subplot(1,1,1)
    print(fig1, ax1)
    hist = ax1.hist(np.random.randn(100), bins = 20, rwidth=0.9)
    plt.show()
    

    结果如下

    pyplot 的每次操作都是在最后一次使用的 fig/Axes 上操作。将其赋予变量可以让我们在以后很方便的调用切换。由于添加 fig 和 axes 使用特高频,所以可以用 plt.subplots 一次完成。

    fig2, ax2 = plt.subplots(2, 3)
    

    这样会生成一个fig对象,和一个2行3列的ax数组,可以方便的用 ax2[row, col] 这样的方式调用。比如利用如下代码:

    ax2[0,1] = plt.plot(np.arange(10), np.random.randn(10))
    plt.show()
    

    2.2 Colors, Markers 和 Line Styles

    plt.plot 的时候可以指定颜色、线型、标记等。简化的方法是都集合在一起,比如 plt.plot('ko--')。不过我不太喜欢这种方式。<Zen of Python> 明确说道

    Explicit is better than implicit.

    既然如此,为什么不干脆点指定个明明白白清清楚楚呢?所以相比之下我更喜欢用下面这些代码:

    ax2[0,2] = plt.plot(np.arange(10), np.random.randn(10), color='k', linestyle='dashed', marker='o')
    plt.show()
    

    根据 matplotlib 文档,默认颜色设置为

    • b: blue
    • g: green
    • r: red
    • c: cyan
    • m: magenta
    • y: yellow
    • k: black
    • w: white

    当然还有其他形式的颜色表示,比如RGB之类的,但对于普通应用,这个足够了。

    对于线条设置,有

    linestyle description
    '-' or 'solid' solid line
    '--' or 'dashed' dashed line
    '-.' or 'dashdot' dash-dotted line
    ':' or 'dotted' dotted line
    'None' draw nothing
    ' ' draw nothing
    '' draw nothing

    对于标记 Marker,内容比较多,不在此处多列,详细可见官方文档

    matplotlib 内容太多,这个先当成上篇吧。明天继续。

    感觉英年早逝的John D. Hunter (1968 – 2012) 给我们留下的这一丰富遗产。

    3. 来源


    DongTalks.jpg

    相关文章

      网友评论

        本文标题:matplotlib API 简述(01) - Daily Py

        本文链接:https://www.haomeiwen.com/subject/fhsolxtx.html