matlab如何获得三维坐标图的视角

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何获得三维坐标图的视角相关的知识,希望对你有一定的参考价值。

参考技术A

解决这个问题的方法如下:

1、双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。

2、通过语句:

u=-6:0.1:6;

v=-6:0.1:6;

创建两个数组u和v。

3、通过语句:

[x,y]=meshgrid(u,v);

z=3*x.^2+3*y.^2;

首先将数组u和v转化成矩阵x和y,然后创建一个三维图像。

4、通过语句:

subplot(2,2,1);

surfc(x,y,z);

title('默认视角');

绘制一个默认视角的三维图像。

5、通过语句:

subplot(2,2,2);

surfc(x,y,z);

view(-50,80);

title('仰角80度,视角-50度');

将视角设置为仰角为80度,方位角为-50度;注意使用函数view()来设置视角。

6、通过语句:

subplot(2,2,3);

surfc(x,y,z);

view([6,2,2]);

title('视点是从点(6,2,2)指向原点');

视角设置为视点是从点(6,2,2)指向原点,注意使用函数view()的参数是一个三维坐标。

7、通过语句:

subplot(2,2,4);

surfc(x,y,z);

view(40,130);

title('仰角130度,方位角40度');

将视角设置为仰角130度,方位角40度;注意使用函数view()来设置视角。

8、最后可以查看不同视角下的三维图像。

python 三维坐标图

  1. 绘制3D柱状图,其数据格式为,二维数组或三维数组。

    from numpy import *

    file=open(‘C:\\Users\\jyjh\\Desktop\\count.txt‘,‘r‘)

    arr=[]

    for i in file.readlines():

        temp=[]

        for j in i.strip().split(‘\t‘):

            temp.append(float(j))

        arr.append(temp)

    import random

    import numpy as np

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    from mpl_toolkits.mplot3d  import Axes3D

    mpl.rcParams[‘font.size‘]=10

    fig=plt.figure()

    ax=fig.add_subplot(111,projection=‘3d‘)

    xs=range(len(arr))

    ys=range(len(arr[0]))

    for z in range(len(arr)):

        xs=range(len(arr))

        ys=arr[z]

        color=plt.cm.Set2(random.choice(range(plt.cm.Set2.N)))

        ax.bar(xs,ys,zs=z,zdir=‘y‘,color=color,alpha=0.5)

        ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))

        ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))

    ax.set_xlabel(‘x‘)

    ax.set_ylabel(‘y‘)

    ax.set_zlabel(‘copies‘)

    plt.show()

    通过设置xs,ys,z可以设定绘制不同维度的数据。

    技术分享
    技术分享
    技术分享
  2. 绘制热图:

    import numpy as np

    from matplotlib import pyplot as plt

    from matplotlib import cm 

    from matplotlib import axes

    def draw_heatmap(data,xlabels,ylabels):

        #cmap = cm.get_cmap(‘rainbow‘,1000)

        cmap=cm.gray

        figure=plt.figure(facecolor=‘w‘)

        ax=figure.add_subplot(2,1,1,position=[1,1,1,1])

        ax.set_yticks(range(len(ylabels)))

        ax.set_yticklabels(ylabels)

        ax.set_xticks(range(len(xlabels)))

        ax.set_xticklabels(xlabels)

        vmax=data[0][0]

        vmin=data[0][0]

        for i in data:

            for j in i:

                if j>vmax:

                    vmax=j

                if j<vmin:

                    vmin=j

        map=ax.imshow(data,interpolation=‘nearest‘,cmap=cmap,aspect=‘auto‘,vmin=vmin,vmax=vmax)

        cb=plt.colorbar(mappable=map,cax=None,ax=None,shrink=0.8)

        plt.show()

    xl=range(16)

    yl=range(16)

    draw_heatmap(arr,xl,yl)

    技术分享
    技术分享
  3. 绘制曲面图

    from matplotlib import pyplot as plt

    import numpy as np

    from mpl_toolkits.mplot3d import Axes3D

    figure = plt.figure()

    ax = Axes3D(figure)

    X = np.arange(-10, 10, 0.25)

    Y = np.arange(-10, 10, 0.25)

    #网格化数据

    X, Y = np.meshgrid(X, Y)

    R = np.sqrt(X**2 + Y**2)

    Z = np.cos(R)

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=‘rainbow‘)

    plt.show()

    技术分享
    技术分享
  4. 绘制曲线图

    from mpl_toolkits.mplot3d import Axes3D

    import numpy as np

    import matplotlib.pyplot as plt

    #生成画布

    figure=plt.figure()

    ax=figure.add_subplot(111,projection=‘3d‘)

    #生成向量

    z=np.linspace(0,6,1000)

    r=1

    x=r*np.sin(np.pi*2*z)

    y=r*np.cos(np.pi*2*z)

    ax.plot(x,y,z)

    plt.show()

    技术分享
    技术分享

以上是关于matlab如何获得三维坐标图的视角的主要内容,如果未能解决你的问题,请参考以下文章

python 三维坐标图

MATLAB用作图之后如何把y轴的坐标值放到两个刻度之间?

Matlab 如何生成三维图像

C语言编程实现根据坐标批量绘制长方体的三维图,最好可以用鼠标移动和旋转

matlab三维三维图形的修饰标注viewaxis等matlab图行绘制七

matlab三维三维图形的修饰标注viewaxis等matlab图行绘制七