zoukankan      html  css  js  c++  java
  • Python数据可视化库-Matplotlib(二)

    我们接着上次的继续讲解,先讲一个概念,叫子图的概念。

    我们先看一下这段代码

    import matplotlib.pyplot as plt
    fig = plt.figure()
    ax1 = fig.add_subplot(3,2,1)
    ax2 = fig.add_subplot(3,2,2)
    ax3 = fig.add_subplot(3,2,3)
    ax4 = fig.add_subplot(3,2,6)
    plt.show()

    我们看到plt.figure()这个方法,我们设置一个整体的图。然后我们在往这个图中增加我们需要的子图

    fig.add_subplot(3,2,1)意思是在figure中,添加一个3行2列的子图,其中,最后一个参数是子图的位置

    我们在做一下变换,对比一下可以很清楚的看到,我们看看下面的代码

    import matplotlib.pyplot as plt
    fig = plt.figure()
    ax1 = fig.add_subplot(4,4,1)
    ax2 = fig.add_subplot(4,4,2)
    ax3 = fig.add_subplot(4,4,3)
    ax4 = fig.add_subplot(4,4,4)
    ax5 = fig.add_subplot(4,4,6)
    ax6 = fig.add_subplot(4,4,7)
    ax6 = fig.add_subplot(4,4,16)
    plt.show()

    可以得到如下的一个子图

    import numpy as np
    fig = plt.figure(figsize=(6,6))
    ax1 = fig.add_subplot(2,1,1)
    ax2 = fig.add_subplot(2,1,2)
    ax1.plot(np.random.randint(1,5,5),np.arange(5))
    ax2.plot(np.arange(10)*3,np.arange(10))
    plt.show()

    我们可以看到,我们设置figsize=(6,6)我们可以图的大小。设置两个图

    我们在画图的时候,可以直接通过ax1.plot,ax2.plot进行随机数据配置

    unrate['MONTH'] = unrate['DATE'].dt.month
    unrate['MONTH'] = unrate['DATE'].dt.month
    fig = plt.figure(figsize=(6,3))
    
    plt.plot(unrate[0:12]['MONTH'],unrate[0:12]['VALUE'],c ='red')
    plt.plot(unrate[12:24]['MONTH'],unrate[12:24]['VALUE'],c ='blue')
    plt.show()

     可以看到我们可以设置折线图的不同的颜色。

    下面我们看看这个例子

    fig = plt.figure(figsize=(10,6))
    colors = ['red','blue','green','orange','black']
    for i in range(5):
        start_index = i*12
        end_index = (i+1)*12
        subset = unrate[start_index:end_index]
        plt.plot(subset['MONTH'],subset['VALUE'],c=colors[i])
    plt.show()

    我们把数据通过不同的颜色的线条画出来了,但是不知道每条线代表的是什么意思。下面我们给折线图加上一个图例:

    fig = plt.figure(figsize=(10,6))
    colors = ['red', 'blue', 'green', 'orange', 'black']
    for i in range(5):
        start_index = i*12
        end_index = (i+1)*12
        subset = unrate[start_index:end_index]
        label = str(1948 + i)
        plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
    plt.legend(loc='best')
    plt.show()

    我们通过label=label 设置好一个label为图例,然后进行设置,默认为plt.legend(loc='best')图例显示在右边

    我们做下点单的修改,让整个折线图完整标准的显示

    fig = plt.figure(figsize=(10,6))
    colors = ['red', 'blue', 'green', 'orange', 'black']
    for i in range(5):
        start_index = i*12
        end_index = (i+1)*12
        subset = unrate[start_index:end_index]
        label = str(1948 + i)
        plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
    plt.legend(loc='upper left')
    plt.xlabel('Month, Integer')
    plt.ylabel('Unemployment Rate, Percent')
    plt.title('Monthly Unemployment Trends, 1948-1952')
    plt.show()

    我们增加了整个折线图的XY轴表示,图例位置调整为左边。添加了折线图的标题。 

    今天讲解就先到这里,我们可以看到,通过Matplotlib库,可以很轻松的画出我们想要的图。

    感谢各位的阅读,谢谢~~

  • 相关阅读:
    Redis 6.0 新特性多线程连环13问!
    这些Java8官方挖过的坑,你踩过几个?
    读Hadoop3.2源码,深入了解java调用HDFS的常用操作和HDFS原理
    AI学习笔记:人工智能与机器学习概述
    千亿级互联网平台技术架构及背后那些事
    报告老板,微服务高可用神器已祭出,您花巨资营销的高流量来了没?
    千亿级平台技术架构:为了支撑高并发,我把身份证存到了JS里
    从技术思维角度聊一聊『程序员』摆地摊的正确姿势
    TryCatch包裹的代码异常后,竟然导致了产线事务回滚!
    SpringBoot集成邮件发送
  • 原文地址:https://www.cnblogs.com/ws17345067708/p/10861066.html
Copyright © 2011-2022 走看看