美文网首页
python数据处理5

python数据处理5

作者: 无涯2016 | 来源:发表于2019-08-01 22:36 被阅读0次

    #==============================================================================

    # 第5章 创建3D可视化图表 129

    # 5.1 简介 129

    #==============================================================================

    #==============================================================================

    # 5.2 创建3D柱状图 129

    #==============================================================================

    5.2.1 准备工作 130

    5.2.2 操作步骤 130

    5.2.3 工作原理 132

    5.2.4 补充说明 132

    import random

    import numpy as np

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    import matplotlib.dates as mdates

    from mpl_toolkits.mplot3d import Axes3D

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

    fig = plt.figure()

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

    for z in [2011, 2012, 2013, 2014]:

        xs = xrange(1,13)

        ys = 1000 * np.random.rand(12)

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

        ax.bar(xs, ys, zs=z, zdir='y', color=color, alpha=0.8)

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

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

    ax.set_xlabel('Month')

    ax.set_ylabel('Year')

    ax.set_zlabel('Sales Net [usd]')

    plt.show()

    ------------------------------------------------

    from mpl_toolkits.mplot3d import Axes3D

    from matplotlib import cm

    import matplotlib.pyplot as plt

    import numpy as np

    n_angles = 36

    n_radii = 8

    radii = np.linspace(0.125, 1.0, n_radii)

    angles = np.linspace(0, 2 * np.pi, n_angles, endpoint=False)

    angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)

    # Convert polar (radii, angles) coords to cartesian (x, y) coords

    # (0, 0) is added here. There are no duplicate points in the (x, y) plane

    x = np.append(0, (radii * np.cos(angles)).flatten())

    y = np.append(0, (radii * np.sin(angles)).flatten())

    # Pringle surface

    z = np.sin(-x * y)

    fig = plt.figure()

    ax = fig.gca(projection='3d')

    ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)

    plt.show()

    #==============================================================================

    # 5.3 创建3D直方图 133

    #==============================================================================

    5.3.1 准备工作 134

    5.3.2 操作步骤 134

    5.3.3 工作原理 135

    import numpy as np

    import matplotlib.pyplot as plt

    import matplotlib as mpl

    from mpl_toolkits.mplot3d import Axes3D

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

    x = np.random.normal(5, 1,  25)

    y = np.random.normal(3, .5,  25)

    fig = plt.figure()

    ax = fig.add_subplot(211, projection='3d')

    hist, xedges, yedges = np.histogram2d(x, y, bins=10)

    xpos, ypos = np.meshgrid(xedges[:-1]+.25, yedges[:-1]+.25)

    xpos = xpos.flatten()

    ypos = ypos.flatten()

    zpos = np.zeros((len(xedges) - 1) * (len(yedges) - 1))

    dx = .1 * np.ones_like(zpos)

    dy = dx.copy()

    dz = hist.flatten()

    ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color='b', alpha=0.4)

    ax.set_xlabel('X Axis')

    ax.set_ylabel('Y Axis')

    ax.set_zlabel('Z Axis')

    ax2 = fig.add_subplot(212)

    ax2.scatter(x, y)

    ax2.set_xlabel('X Axis')

    ax2.set_ylabel('Y Axis')

    plt.show()

    #==============================================================================

    # 5.4 在matplotlib中创建动画 136

    #==============================================================================

    5.4.1 准备工作 136

    5.4.2 操作步骤 137

    5.4.3 工作原理 138

    5.4.4 补充说明 139

    import numpy as np

    from matplotlib import pyplot as plt

    from matplotlib import animation

    fig = plt.figure()

    ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))

    line, = ax.plot([], [], lw=2)

    def init():

        line.set_data([], [])

        return line,

    def animate(i):

        x = np.linspace(0, 2, 1000)

        y = np.sin(2 * np.pi * (x - 0.01 * i)) * np.cos(22 * np.pi * (x - 0.01 * i))

        line.set_data(x, y)

        return line,

    animator = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=20, blit=True)

    animator.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'], writer='ffmpeg_file')

    plt.show()

    --------------------------------------------------------

    import numpy as np

    import matplotlib.pyplot as plt

    import matplotlib.animation as animation

    fig = plt.figure()

    ax = fig.add_subplot(111)

    x = np.arange(0, 2*np.pi, 0.01)        # x-array

    line, = ax.plot(x, np.sin(x))

    def animate(i):

        line.set_ydata(np.sin(x+i/10.0))  # update the data

        return line,

    #Init only required for blitting to give a clean slate.

    def init():

        line.set_ydata(np.ma.array(x, mask=True))

        return line,

    ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init,

        interval=25, blit=True)

    plt.show()

    #==============================================================================

    # 5.5 用OpenGL制作动画 139

    #==============================================================================

    5.5.1 准备工作 140

    5.5.2 操作步骤 141

    5.5.3 工作原理 142

    5.5.4 补充说明 142

    相关文章

      网友评论

          本文标题:python数据处理5

          本文链接:https://www.haomeiwen.com/subject/kxuhdctx.html