Python_库应用_数据可视化

目录

常用操作:

mayavi工具下,

matplotlib工具下,

实例:图像可视化

实例:普通数据可视化


常用操作:

mayavi工具下,

# 库
import numpy as np
from mayavi import mlab
# 基本函数
mlab.figure # 前景背景设置
mlab.surf # 表面渲染
mlab.mesh # 表面网格
mlab.contour_surf # 表面等高线
mlab.axes # 坐标设置(标签等)
mlab.outline # 网线可视化设置
mlab.show # 显示

matplotlib工具下,

# 库
import matplotlib.pyplot as plt
# 建立框图
fig = plt.figure()
# 实例化对象
ax = fig.add_subplot()
ax = fig.gca()
# 成员函数操作
ax.plot()            # 点
ax.contour()         # 轮廓线  
ax.plot_surface()    # 表面  
ax.set_xlabel() # 标签
ax.set_xlim() # 轴坐标
plt.show() # 显示

实例:图像可视化

建议使用mayai比较好看,数据格式shape    三维保证: X(w,1)Y(1,h)Z(w,h) 

'''
# function 输入灰度图,3D可视化
import cv2
import numpy as np
from mayavi import mlab
'''
def image_surf_3D():
    # 数据输入
    img = cv2.imread("raccoon-3.bmp")		# 修改图片位置
    img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    imgd = np.array(img)      # image类 转 numpy
    # 准备数据
    sp = imgd.shape
    h = int(sp[0])  # height(rows) of image
    w = int(sp[1])  # width(colums) of image
    x, y = np.ogrid[0:w:1,0:h:1]    # 将坐标向量变为坐标矩阵,列为x的长度,行为y的长度
    z = imgd
    mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1)) #更改背景色
    pl = mlab.surf(x, y, z, representation="wireframe", line_width=1.0)
    mlab.contour_surf(x, y, z) # 等高线

    # mlab.axes(xlabel='x',ylabel='y',zlabel='z')    # 显示 x,y,z 的label和数值
    # mlab.outline(pl) # 画立体空间包围区域线
    mlab.show()

 

import numpy as np
from mayavi import mlab

def example():
    x,y = np.ogrid[-2:2:160j,-2:2:160j] 
    # arange 函数产生的是一维数组,而ogrid函数产生的是二维数组
    z = abs(x)*np.exp(-x**2-(y/.75)**2)
    print(x.shape,y.shape)
    print(z.shape)
    mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1)) #更改背景色
    pl=mlab.surf(x,y,z,warp_scale=2)
    mlab.axes(xlabel='x',ylabel='y',zlabel='z')
    #mlab.outline(pl)
    mlab.show()

实例:普通数据可视化

matplotlib数据格式shape    三维保证: X(w,h)Y(w,h)Z(w,h)

import matplotlib.pyplot as plt
from matplotlib import cm
def contour_surface():
    # 第一步:构建框图
    fig = plt.figure()
    ax = fig.gca(projection='3d')

    # 第二步:构建输入数据
    X, Y, Z = axes3d.get_test_data(0.05)

    # 第三步:绘制表面图
    ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)

    # 第四步:对应轴绘制等高线 offset=-100很重要
    '''
    contour 和 contourf 函数说明:contour画线、contourf画线面
    '''
    cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
    cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
    cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

    # 第五步:设置表格的各轴范围和标签
    ax.set_xlabel('X')
    ax.set_xlim(-40, 40)
    ax.set_ylabel('Y')
    ax.set_ylim(-40, 40)
    ax.set_zlabel('Z')
    ax.set_zlim(-100, 100)

    # 第六步:文本注释
    ax.text(-40, 20, 50, "SSSSSSSSSSSSSSS", color='red')

    plt.show() 

 

import matplotlib.pyplot as plt
import numpy as np
def data_xyz(): 
    # 目标直径
    w0 = np.random.randint(low=40, high=100, size=10, dtype='l')
    h0 = np.random.randint(low=40, high=100, size=10, dtype='l')
    # 大目标直径
    W0 = np.random.randint(low = 1200, high = 1280,size = 10,dtype='l')
    H0 = np.random.randint(low = 900, high = 1024, size = 10, dtype='l')
    
    
    # 对象
    fig = plt.figure()
    ax = fig.add_subplot(111)#, projection='3d'

    # 绘制
    ax.plot(w0, h0, 'bo')
    ax.plot(W0, H0, 'bo')

    # 文本
    ax.text(30, 100, "S", color='red')
    # 轴
    ax.set_ylabel('y')
    ax.set_xlim(0, 1280)
    ax.set_xlabel('x')
    ax.set_ylim(0, 1280)
    plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值