数据分析之Matplotlib模块学习笔记(三)


Matplotlib 高级绘图功能 – 今日知识点如下:

  • 散点图 扩充知识点
  • 填充图
1.散点图

散点图颜色映射的使用

# d为大于0的整数,这样计算越靠近中心的样本
# d的值越小,越靠近外周的样本d的值越大
d = (x-172)**2-(y-65)**2
mp.scatter(x,y,marker='o',
           s=50,
           c = d,
           cmap='gist_earth',
           alpha=0.5,
           zorder=3,
           label='Student')

散点效果图:
在这里插入图片描述

2.填充图

以某种颜色自动填充两条曲线的闭合区域

mp.fill_between(
		x,sin_x,cos_x, # 通过这三个参数,给出两条曲线
		sin_x<cosx,    # 填充条件,若为True时填充
		color = '',
		alpha=0.5
		)

案例:绘制两条曲线:sin(x)  cos(x/2)/2  [0,8π]

'''
绘制填充
'''
import matplotlib.pyplot as mp 
import numpy as np 

n = 1000
x = np.linspace(0,8*np.pi,n)
sinx = np.sin(x)
cosx = np.cos(x/2)/2
mp.figure('Fill',facecolor='lightgray')

mp.title('Fill',fontsize=18)
mp.xlabel('x',fontsize=12)
mp.ylabel('y',fontsize=12)
mp.tick_params(labelsize=12)
mp.grid(linestyle=":")
mp.plot(x,sinx,c='dodgerblue',label=r'$y=sin(x)')
mp.plot(x,cosx,c='orangered',label=r'$y=\frac{1}{2}cos(\frac{x}{2})$')

mp.fill_between(x,sinx,cosx,
                sinx<cosx,
                color='dodgerblue',
                alpha=0.8
)

mp.legend()

mp.show()

填充效果图:
在这里插入图片描述


3. 绘制3D图像

使用matplotlib绘制3D图像,需要先获取3D坐标轴,调用ax3d对象的方法绘制3D图像

from mpl_toolkits.mplot3d import axes3d
ax3d = mp.gca(projection='3d')


  • 3D线框图
ax3d.plot_writeframe(
			x,y,z,		      # 网格点坐标矩阵,和每个点的z轴值
			rstride=30,		  # 行跨距
			cstride=30,   	  # 列跨距
 			linewidth=1,	  # 线宽
			color=''		  # 颜色

案例:

import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d


n = 1000
# 获取网格点坐标矩阵数组
x, y = np.meshgrid(np.linspace(-3, 3, n),
                   np.linspace(-3, 3, n))

# 通过x与y计算每个坐标点的高度(编的)
z = (1 - x / 2 + x**5 + y**3) * \
    np.exp(-x**2 - y**2)

# 绘制
mp.figure('WireFrame', facecolor='lightgray')
ax = mp.gca(projection='3d')
ax.set_xlabel('x',fontsize=14)
ax.set_ylabel('y',fontsize=14)
ax.set_zlabel('z',fontsize=14)

ax.plot_wireframe(x,y,z,
            rstride=30,
            cstride=30,
            color='dodgerblue',
            linewidth=1
            )

mp.show()

效果图:
在这里插入图片描述


  • 3D曲面图
ax3d.plot_surface(
			x,y,z,
			rstride=30,
			cstride=30,
			cmp='jet'
		)

代码跟3D线框图相似,直接上效果图:
在这里插入图片描述


  • 3D散点图
ax3d.scatter(
		x,y,z,  	  # 样本点的(x,y,z)坐标数组
		marker='o',   # 点型 
		s = 10,       # 点的大小 
		zorder='',      
		color='',      
		edgecolor='',  
		facecolor='', # 背景颜色 
		c = d,        # 颜色值数组
		cmap=''		  # 所使用的颜色映射
		)

案例:

'''
3D散点图绘制
'''
import numpy as np 
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d


n = 100
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
z = np.random.normal(0,1,n)

d = x**2 + y**2 + z**2

mp.figure('3D scatter')
ax = mp.gca(projection='3d')

ax.scatter(x,y,z,
            s = 60,
            alpha = 0.5,
            c=d,
            cmap='jet'

            )
mp.show()

效果图如下:
在这里插入图片描述


4. 绘制 极坐标系

某些情况下极坐标系适合显示与角度有关的图像,例如雷达。它可以处理极径ρ与极角θ之间的线性关系。

mp.gca(projection='polar')  # 使坐标轴变成极坐标系
r = 0.8 * t

案例:

import numpy as np
import matplotlib.pyplot as mp 

t = np.linspace(0,4*np.pi,1000)
r = 0.8 * t


mp.figure('Polor')
mp.gca(projection='polar')
mp.plot(t,r)

mp.show()

效果图:
在这里插入图片描述


5. 简单动画

动画即是在一段时间内快速连续从新绘制图像的过程
matplotlib提供了方法可以实现简单动画,定义一个update函数用于即时更新图像。

import matplotlib.animation as ma
# update中编写更新图像的代码,每隔一段时间将会自动调用
def update(number):
	pass

# 每隔30毫秒,针对当前窗体绘制图像
anim = ma.FuncAnimation(mp.gcf(),update,interval=30)
mp.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值