美文网首页
matplotlib绘图详解2:axes子图绘制

matplotlib绘图详解2:axes子图绘制

作者: 一起学分析 | 来源:发表于2017-11-16 19:59 被阅读442次

    除了plt直接绘图之外,还可以使用subplots直接绘制多个子图。

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-10, 10, 100)
    y =2*np.cos(x)**5 + 3*np.sin(x)**3
    
    #定义画布和子图数量
    fig,axes=plt.subplots(2,3,figsize=(10,6),facecolor='#ccddef')
    #添加整个画布的标题
    fig.suptitle('我是最大的标题',fontsize=20)
    #利用text属性添加副标题
    fig.text(0.45,0.9,'这是副标题')
    #折线图
    axes[0,0].plot(x,y)
    #柱状图
    axes[0,1].bar(x,y*y)
    #直方图
    axes[0,2].hist(y,bins=30)
    #散点图
    axes[1,0].scatter(x,y)
    #条形图
    axes[1,1].barh(x,y)
    #饼图
    axes[1,2].pie([1,2,3,4,5],labels=['A级','B级','C级','D级','E级'])
    #axes[1,2].boxplot() 需要合适的数据,就不画了
    
    #对子图进行详细设置
    ax1=axes[0,0]
    #设置子图的xy轴范围,子图标题,标签背景颜色等,也可单独使用ax1.set_xlim()进行设置。部分属性不能直接使用set设置
    ax1.set(xlim=[-10,12],ylim=[-6,4],title='This is TU1',xlabel='xlabel',ylabel='ylabel',facecolor='#ffeedd')
    #添加网格
    ax1.grid(True)
    #调整图表位置和间距
    fig.subplots_adjust(left=0.2, bottom=0.1, right=0.8, top=0.8,hspace=0.5)
    plt.show()
    
    结果图

    fig.subplots_adjust的几个参数的含义,可以以画板(比画布更底层)的左下角为原点,建立直角坐标系。
    left=0.2表示整个画布左边离y轴距离为整个画板的20%,
    rigtht=0.8表示整个画布右边离y轴距离为整个画板的80%,
    bottom和top同理,
    hspace和wspace表示子图之间的间距(距离大小貌似是子图的宽高的百分比)
    (left=0.2, bottom=0.1, right=0.6, top=0.8,hspace=0.5)

    如果是在ipython中,会有一些自动的优化,所以,设置的subplots_adjust等参数有可能不会被显示。


    ipython的结果图

    相关文章

      网友评论

          本文标题:matplotlib绘图详解2:axes子图绘制

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