[python&Advances mathematics Project 1]Python3在一幅图绘制多个函数图像

发布于 2020-09-08  281 次阅读



title: >-
[python&Advances mathematics Project # 1] draw multiple function images on a
canvas
type: categories
copyright: true
categories: Python
tags:

  • Python
  • 高等数学
  • 图像绘制与可视化
  • matplotlib
  • 考研数学工具
    comments: true
    top: false
    abbrlink: 16eaace6
    date: 2020-08-04 17:00:49
    updated:

(1)Background and Application

We often need to draw a function image for our analysis in the learning and application of advanced mathematics, mathematical analysis and visualization and other scenarios. This can be easily achieved through Python3, which is much more portable and easy to use than MATLAB.

(2)lib

  • matplotlib
  • numpy

(3)General code

Demand analysis

We need a can in the function of the multiple function image is drawn with a picture at the same time, in order to show at the same time, contrast and analysis of law, so we first create the canvas, then according to the plot function is adopted to improve the rendering, according to the number of functions to achieve multiple functions at the same time drawing on the canvas, with design code is as follows:

#!usr/bin/env python
# -*- conding:utf-8 -*-
import matplotlib.pyplot as plt
from numpy import linspace,sqrt,sin,cos,tan,arctan,pi,exp

def plotFunction(x,y,x2 = None,y2 = None,x3=None,y3 = None):
    fig = plt.figure(num = 1,dpi = 120)
    ax = plt.subplot(111)

    # coordinate axes
    ax = plt.gca()  # get current axis
    ax.spines['right'].set_color('none') 
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_ticks_position('left')
    # Set the coordinate axis of (0,0) at the center
    ax.spines['bottom'].set_position(('data', 0))  # Specifies that the bottom(that is, the X-axis specified) of the data setting is bound to the point 0 on the Y-axis
    ax.spines['left'].set_position(('data', 0))

    ax.plot(x,y,label = "first Fig",color ="blueviolet")
    if x2 is not None and y2 is not None:
        ax.plot(x2,y2,label = "Second Fig",color ="red")
    #ax.set_xlim(0,2)
    ax.set_xlabel("line",color='cyan')
    #plt.draw()
    plt.legend()
    plt.show()

Relevant parameters and image adjustment can be referred to the Matplotlib manual. This paper aims to provide a method and idea.

(4)Advanced Mathematical Function Test

Take the function f (x)= sine (1/x) as an example, first define a function and the scope of its definition:

x = linspace(-2*pi,2*pi,1000)
y = sin(1/x)

plotFunction(x,y)


For complex trigonometric functions, see the figure below:

If we want to know the graph of this function and how it differs from the sine of 1/x above, we just need to define it as follows:

x = linspace(-2*pi,2*pi,1000)
y = sin(1/x)
y2 = sqrt(x)*(x**3-4*cos(x)-sin(1))

plotFunction(x,y,x,y2)


This function can also be further extended, can be used to achieve the original function of the drawing, the drawing of the first derivative function and other functions.

x = linspace(-pi/2,pi/2,1000)
y = arcsin(x)
y2 = 1/sqrt(1-x*x)

plotFunction(x,y,x,y2)


Other functions can be explored/improved on their own.