Introduction to matplotlib for data mining

Keywords: Python

Brief introduction

matplotlib library is one of the libraries in Python data mining, which is mainly used for 2D drawing, simple 3D drawing and data visualization.

Python data mining related extension library

Simple use

(1) Draw a straight line

Line y=x+10

Code:

def print_line_draw():
    """
    //Draw straight lines
    :return: 
    """
    # Create a numpy array with a 1 interval between 0-10
    x = np.arange(0, 10, 1)
    y = x + 10

    # Drawing graphics
    plt.plot(x, y, color='blue', linestyle='--', marker='*', linewidth=1, label=' y = x + 10 ')

    # Save picture, dpi
    plt.savefig('first.png', dpi=50)
    # Show Legend
    plt.legend()
    # display graphics
    plt.show()

(2) Draw a pie chart

Pie chart

Code:

def print_pie_draw():
    """
    //Pie chart
    :return: 
    """
    # Specify the size (scale) of each slice
    slice = [2,3,4,9]
    # Specified tag
    activities =['sleeping','eating','working','playing']
    # colour
    cols = ['c','m','r','b']

    plt.pie(slice,
            labels=activities,
            colors=cols,
            startangle=90, #Start angle, default is 0 degrees, starting from the x-axis, 90 degrees starting from the y-axis
            shadow=True,
            explode=(0,0.1,0,0), # Pull out the second slice. If it's all 0, it doesn't pull out. The distance between the number here and the center of the circle
            autopct='%1.1f%%')   # Show percentage
    plt.title('Activities analysis')
    # The first 0 of the parameter in expand represents the first slice, and the distance from the origin is 0
    plt.show()

(3) Draw a scatter

Scatter plot

Code:

def print_scatter_draw():
    """
    //Scatter plot
    :return: 
    """
    x = np.random.rand(1000)
    y = np.random.rand(len(x))

    # Mapping
    plt.scatter(x,y,color='r',alpha=0.3,label='scatter draw ',marker='p')
    plt.legend()

    #plt.axis([0,2,0,2])# Set the range of coordinates
    plt.show()

(4) Draw a histogram

Ugly histogram

Code:

def print_hist_draw():
    """
    //Draw histogram
    :return: 
    """
    x = np.random.randint(1,1000,200)

    axit = plt.gca()  # Get the current drawing object
    #The number of bins histogram, the style of histtype histogram normalized histogram, display probability density (default false)
    axit.hist(x,bins=35,facecolor='r',normed=True,histtype='bar',alpha=0.5)
    axit.set_xlabel('values') # Label x
    axit.set_ylabel('Frequery') # Label y
    axit.set_title('HIST')
    plt.show()

(5) Simple trigonometric function

Trigonometric function diagram

Code:

def print_sinandcos_line():

    x = np.linspace(0,10,1000)
    y = np.sin(x) +1
    z = np.cos(x**2) +1

    # Set image size
    plt.figure(figsize=(8,4))
    # Drawing, setting label, line color, line size
    plt.plot(x,y,label='$\sin x +1$',color='red',linewidth=2)
    # Drawing, labeling, line type
    plt.plot(x,z,'b--',label='$\cos x^2+1$')
    # Set x-axis name
    plt.xlabel('Time(s)')
    # Set y-axis name
    plt.ylabel('Volt')
    # Set title
    plt.title('A simple Example')
    # Displayed y-axis range
    plt.ylim(0,2.2)
    # Show Legend
    plt.legend()
    # Display drawing results
    plt.show()

The above is a simple use of today's matplotlib function

All code


# -*- coding: utf-8 -*-
# @Time    : 2018/3/26 15:09
# @Author: snake cub
# @Email   : 643435675@QQ.com
# @File    : test_matplotlib.py

import matplotlib.pyplot as plt
import numpy as np


def print_line_draw():
    """
    //Draw straight lines
    :return: 
    """
    # Create a numpy array with a 1 interval between 0-10
    x = np.arange(0, 10, 1)
    y = x + 10

    # Drawing graphics
    plt.plot(x, y, color='blue', linestyle='--', marker='*', linewidth=1, label=' y = x + 10 ')

    # Save picture, dpi
    plt.savefig('first.png', dpi=50)
    # Show Legend
    plt.legend()
    # display graphics
    plt.show()


def print_pie_draw():
    """
    //Pie chart
    :return: 
    """
    # Specify the size (scale) of each slice
    slice = [2,3,4,9]
    # Specified tag
    activities =['sleeping','eating','working','playing']
    # colour
    cols = ['c','m','r','b']

    plt.pie(slice,
            labels=activities,
            colors=cols,
            startangle=90, #Start angle, default is 0 degrees, starting from the x-axis, 90 degrees starting from the y-axis
            shadow=True,
            explode=(0,0.1,0,0), # Pull out the second slice. If it's all 0, it doesn't pull out. The distance between the number here and the center of the circle
            autopct='%1.1f%%')   # Show percentage
    plt.title('Activities analysis')
    # The first 0 of the parameter in expand represents the first slice, and the distance from the origin is 0
    plt.show()


def print_scatter_draw():
    """
    //Scatter plot
    :return: 
    """
    x = np.random.rand(1000)
    y = np.random.rand(len(x))

    # Mapping
    plt.scatter(x,y,color='r',alpha=0.3,label='scatter draw ',marker='p')
    plt.legend()

    #plt.axis([0,2,0,2])# Set the range of coordinates
    plt.show()
    pass


def print_hist_draw():
    """
    //Draw histogram
    :return: 
    """
    x = np.random.randint(1,1000,200)

    axit = plt.gca()  # Get the current drawing object
    #The number of bins histogram, the style of histtype histogram normalized histogram, display probability density (default false)
    axit.hist(x,bins=35,facecolor='r',normed=True,histtype='bar',alpha=0.5)
    axit.set_xlabel('values') # Label x
    axit.set_ylabel('Frequery') # Label y
    axit.set_title('HIST')
    plt.show()
    pass


def print_sinandcos_line():

    x = np.linspace(0,10,1000)
    y = np.sin(x) +1
    z = np.cos(x**2) +1

    # Set image size
    plt.figure(figsize=(8,4))
    # Drawing, setting label, line color, line size
    plt.plot(x,y,label='$\sin x +1$',color='red',linewidth=2)
    # Drawing, labeling, line type
    plt.plot(x,z,'b--',label='$\cos x^2+1$')
    # Set x-axis name
    plt.xlabel('Time(s)')
    # Set y-axis name
    plt.ylabel('Volt')
    # Set title
    plt.title('A simple Example')
    # Displayed y-axis range
    plt.ylim(0,2.2)
    # Show Legend
    plt.legend()
    # Display drawing results
    plt.show()
    pass


if __name__ == '__main__':
    # print_line_draw()
    # print_pie_draw()
    # print_scatter_draw()
    # print_hist_draw()
    print_sinandcos_line()

Posted by Pedro Sim on Fri, 03 Apr 2020 04:41:27 -0700