从理解原理入手,使用matplotlib绘制你想要的任何图形!
欢迎浏览我的专栏:https://blog.csdn.net/qq_40761869/article/category/9403564
# 我们在二维平面中得到图像的方式有两种,一种是通过函数值序列得到函数的图像,另一种是通过图像的参数方程得到
from matplotlib import pyplot
from numpy import arange, array, pi, sin, cos, meshgrid, arcsin, sqrt, append
# 比如我们要绘制x:-pi~pi,y:-pi~pi范围内sin(x^2)+sin(y^2)=1的图像
# 直接根据图像方程绘制图像
# 使用contour函数,绘制z=f(x,y)=sin(x^2)+sin(y^2)-1的等高线图(contour图)
x = arange(-pi, pi, 0.01)
y = arange(-pi, pi, 0.01)
x, y = meshgrid(x, y)
z = sin(x**2) + sin(y**2) - 1
pyplot.subplot(221)
pyplot.contour(x, y, z, 0)
pyplot.axis('equal')
# 第四个参数的意思是,绘制0条等高线。因为必定要绘制z=0这条特殊的线,所以不绘制其他的线就相当于只绘制参数方程图线
# 比如我们要绘制x:-pi~pi,y:-pi~pi范围内椭圆x^2/9+y^2/4=1的图像
# 其中x和y都是变量t的函数,也就是说,这是个参数方程
# 直接使用plot绘制图像
t = arange(-pi, pi, 0.01)
x = 3*sin(t)
y = 2*cos(t)
pyplot.subplot(222)
pyplot.plot(x, y)
pyplot.axis([-pi, pi, -pi, pi], 'equal')
# 比如我们要绘制x:-pi~pi,y:-pi~pi范围内sin(x^2)+sin(y^2)=1的图像
# 函数同第一个例子,但是我们准备画出z这个矩阵中所有的点,不同的值按照不同的颜色来区分
x = arange(-pi, pi, 0.01)
y = arange(-pi, pi, 0.01)
x, y = meshgrid(x, y)
z = sin(x**2) + sin(y**2) - 1
pyplot.subplot(223)
pyplot.imshow(z)
pyplot.colorbar()
# 比如我们想绘制类似电子云的散点图:零均值独立同分布高斯散点图在-5~5之间的图像
# 使用scatter函数,直接传入x坐标和y坐标
# 这里有一篇博文讲的很好https://blog.csdn.net/zidephagino/article/details/80777906
import numpy.random
x = numpy.random.normal(0, 1, 1000)
y = numpy.random.normal(0, 1, 1000)
pyplot.subplot(224)
pyplot.scatter(x, y, c='r', marker='.', s=1)
pyplot.axis('equal')
#上面的marker中传入什么都可以,甚至是一个字符串。因此可以用这个来实现输出图形的操作
# 显示
pyplot.show()