zoukankan      html  css  js  c++  java
  • 20200115(绘图和可视化——matplotlib)

    8. 绘图和可视化——matplotlib

    首先确定IPython 是以Pylab 模式启动的。

    • 在命令行窗口(CMD窗口)输入 ipython --pylab
    • 或者在ipython 环境下输入%pylab

     绘制一条直线:

     

    8.1  Figure和Subplot

    matplotlib 的图像都位于Figure 对象中。 可以用plt.figure 创建一个新的Figure:   这时会弹出一个空窗口。

    fig = plt.figure()

     

    matplotlib 中的Figure 支持一种MATLAB 式的编号架构(eg. plt.figure(2))。通过plt.gcf() 即可得到当前Figure 的引用。

     

    不能通过空Figure 绘图,必须用 add_subplot 创建一个或多个 subplot :

    ax1 = fig.add_subplot(2, 2, 1)

    这个代码的意思是,图像应该是 2*2 的,且当前选中的是4个 subplot 中的第一个。接着创建后面的:

     

    ax2 = fig.add_subplot(2, 2, 2)
    ax3 = fig.add_subplot(2, 2, 3)

     

     结果:

    此时,发出一条绘图命令,matplotlib 就会在最后一个用过的 subplot (如果没有则创建一个)上进行绘图。

     

    from numpy.random import randn
    plt.plot(randn(50).cumsum(), 'k--')

     

     继续在其他两个subplot中画图:

    _ = ax1.hist(randn(100), bins =20, color = 'k', alpha =0.3)
    ax2.scatter(np.arange(30), np.arange(30) + 3*randn(30))

    结果:

    8.2  subplots

    (补)

    8.3  颜色、标记和线型

    matplotlib 的plot 函数接受一组(x, y)坐标,还可以接受有个表示颜色和线型的字符串缩写。

                  ax.plot(x, y, 'g--')     #绿色虚线

    等价于:ax.plot(x, y, linestyle='--', color='g')   #绿色虚线

     

     线型图可以加标记(marker),以强调实际的数据点。

    !!!标记类型和线型必须放在颜色后面

    plt.plot(randn(30).cumsum(), 'ko--')   #等价于
    plt.plot(randn(30).cumsum(), color='k',linestyle='dashed', marker='o')   

    结果:

     8.4  刻度、标签和图例

    对于大多数的图标装饰项,主要实现方式有二:

      • 使用过程型的pyplot 接口;
      • 面向对象的原生matplotlib API 。

    pyplot 接口的设计目的就是交互式使用,含有诸如xlim、xticks 和 xticklabels 之类的方法。分别控制图表的范围、刻度位置、刻度标签等。使用方式包括以下两种:

    • 调用时不带参数,则返回当前的参数值。例如 plt.xlim() 返回当前的x 轴绘图范围。
    • 调用时带参数,则设置参数值。因此,plt.xlim([0, 10]) 会将x 轴的范围设置为0到10。

     

    8.5 设置标题、轴标签、刻度以及刻度标签

    首先,我们创建一个简单的随机漫步图像来介绍:

    fig3 = plt.figure()
    ax = fig3.add_subplot(1,1,1)
    ax.plot(randn(1000).cumsum())

    结果:

     设置 x 轴的刻度及刻度标签:

    ticks = ax.set_xticks([0, 250, 500, 750, 1000])
    labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'], rotation = 30, fontsize = 'small')

    设置 x 轴的名称:

    ax.set_xlabel('Stages')

    图表添加图名:

    ax.set_title('my first plot')

    最终结果:

    代码如下:

     

    8.6   添加图例

    图例( legend )是一种用于标识图表元素的重要工具。添加方式有两个:

    • 在添加subplot 的时候传入 label 参数;
    ax.plot(randn(1000).cumsum(), 'k--', label = 'first')
    ax.plot(randn(1000).cumsum(), 'g--', label = 'second')
    • 调用ax.legend()  或者plt.legend() 。
    ax.legend(loc = 'best')

    注: 要从图例中去除一个或多个元素,不传入label 或者传入 label = '_nolegend_' 即可。

     

    8.7 注解以及在Subplot 上绘图

    除标准的图标对象之外,有时候可能需要绘制一些自定义的注解(比如文本。箭头和其它图形等)。注释可以通过text 、arrow和annotate 等函数进行添加。

     

    8.8  将图标保存到文件

    保存的文件类型是通过文件扩展名推断出来的。我们保存图片时最常用的两个重要的选项是dpi (控制‘每英寸点数’分辨率)和 bbox_inches(可以剪除当前图表周围的空白部分)。

     

     plt.savefig('E:\python/123.png', dpi=400, bbox_inches = 'tight')

     

    结果:

     

    savefig 并非一定要写入磁盘,也可以写入任何文件型的对象,如StringIO:

     

    from io import StringIO
    buffer = StringIO()
    plt.savefig(buffer)
    plot_data = buffer.getvalue()

     

    这对在Web 上提供动态生成的图片时很实用的。

     

     

    Figure。savefig 除了dpi 和bbox_inches 还有一些其他的选项:

    8.9  matplotlib 配置

     matplotlib自带一些配色方案,以及为生成出版质量的图片而设定的默认配置信息,可以管理图像的大小,subplot 边距、配色方案、字体大小、网格类型等。操作 matplotlib 配置系统的方式主要有两种。第一种是Python编程方式,即利用rc 方法。

     

     

     

  • 相关阅读:
    postgresql大批量数据导入方法
    Odoo 的库存管理与OpenERP之前的版本有了很大的不同,解读Odoo新的WMS模块中的新特性
    一招解决OpenERP8.0安装旧版模块报错
    window下python 扩展库安装 使用第三方镜像源
    OpenERP 安装在Windows server上时间显示不对的解决办法
    深入理解OpenERP的工作流(Workflow)
    Need to add a caption to a jpg, python can't find the image
    OE中admin的内置帐号
    [Linux] Git: 基本使用
    ubuntu下实现openerp 7使用nginx反正代理及绑定域名
  • 原文地址:https://www.cnblogs.com/bltstop/p/12183235.html
Copyright © 2011-2022 走看看