zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然Python Matplotlib库学习笔记:matplotlib绘图(2)

    import numpy as np
    import matplotlib.pyplot as plt
    
    fig = plt.figure()
    fig.subplots_adjust(bottom=0.025, left=0.025, top = 0.975, right=0.975)
    
    plt.subplot(2,1,1)
    plt.xticks([]), plt.yticks([])
    
    plt.subplot(2,3,4)
    plt.xticks([]), plt.yticks([])
    
    plt.subplot(2,3,5)
    plt.xticks([]), plt.yticks([])
    
    plt.subplot(2,3,6)
    plt.xticks([]), plt.yticks([])
    
    # plt.savefig('../figures/multiplot_ex.png',dpi=48)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    n = 20
    Z = np.ones(n)
    Z[-1] *= 2
    
    plt.axes([0.025, 0.025, 0.95, 0.95])
    
    plt.pie(Z, explode=Z*.05, colors=['%f' % (i/float(n)) for i in range(n)],
            wedgeprops={"linewidth": 1, "edgecolor": "black"})
    plt.gca().set_aspect('equal')
    plt.xticks([]), plt.yticks([])
    
    # savefig('../figures/pie_ex.png',dpi=48)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    n = 256
    X = np.linspace(-np.pi,np.pi,n,endpoint=True)
    Y = np.sin(2*X)
    
    plt.axes([0.025,0.025,0.95,0.95])
    
    plt.plot (X, Y+1, color='blue', alpha=1.00)
    plt.fill_between(X, 1, Y+1, color='blue', alpha=.25)
    
    plt.plot (X, Y-1, color='blue', alpha=1.00)
    plt.fill_between(X, -1, Y-1, (Y-1) > -1, color='blue', alpha=.25)
    plt.fill_between(X, -1, Y-1, (Y-1) < -1, color='red',  alpha=.25)
    
    plt.xlim(-np.pi,np.pi), plt.xticks([])
    plt.ylim(-2.5,2.5), plt.yticks([])
    # savefig('../figures/plot_ex.png',dpi=48)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    fig = plt.figure()
    ax = Axes3D(fig)
    X = np.arange(-4, 4, 0.25)
    Y = np.arange(-4, 4, 0.25)
    X, Y = np.meshgrid(X, Y)
    R = np.sqrt(X**2 + Y**2)
    Z = np.sin(R)
    
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
    ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)
    ax.set_zlim(-2,2)
    
    # savefig('../figures/plot3d_ex.png',dpi=48)
    plt.show()

    from pylab import *
    from mpl_toolkits.mplot3d import axes3d
    
    
    ax = gca(projection='3d')
    X, Y, Z = axes3d.get_test_data(0.05)
    cset = ax.contourf(X, Y, Z)
    ax.clabel(cset, fontsize=9, inline=1)
    
    plt.xticks([]), plt.yticks([]), 
    ax.set_zticks([])
    
    ax.text2D(-0.05, 1.05, " 3D plots 
    
    ",
              horizontalalignment='left',
              verticalalignment='top',
              family='Lint McCree Intl BB',
              size='x-large',
              bbox=dict(facecolor='white', alpha=1.0, width=350,height=60),
              transform = gca().transAxes)
    
    ax.text2D(-0.05, .975, " Plot 2D or 3D data",
              horizontalalignment='left',
              verticalalignment='top',
              family='Lint McCree Intl BB',
              size='medium',
              transform = gca().transAxes)
    
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    ax = plt.axes([0.025,0.025,0.95,0.95], polar=True)
    
    N = 20
    theta = np.arange(0.0, 2*np.pi, 2*np.pi/N)
    radii = 10*np.random.rand(N)
    width = np.pi/4*np.random.rand(N)
    bars = plt.bar(theta, radii, width=width, bottom=0.0)
    
    for r,bar in zip(radii, bars):
        bar.set_facecolor( plt.cm.jet(r/10.))
        bar.set_alpha(0.5)
    
    ax.set_xticklabels([])
    ax.set_yticklabels([])
    # savefig('../figures/polar_ex.png',dpi=48)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    n = 8
    X,Y = np.mgrid[0:n,0:n]
    T = np.arctan2(Y-n/2.0, X-n/2.0)
    R = 10+np.sqrt((Y-n/2.0)**2+(X-n/2.0)**2)
    U,V = R*np.cos(T), R*np.sin(T)
    
    plt.axes([0.025,0.025,0.95,0.95])
    plt.quiver(X,Y,U,V,R, alpha=.5)
    plt.quiver(X,Y,U,V, edgecolor='k', facecolor='None', linewidth=.5)
    
    plt.xlim(-1,n), plt.xticks([])
    plt.ylim(-1,n), plt.yticks([])
    
    # savefig('../figures/quiver_ex.png',dpi=48)
    plt.show()

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
    
    # No toolbar
    matplotlib.rcParams['toolbar'] = 'None'
    
    # New figure with white background
    fig = plt.figure(figsize=(6,6), facecolor='white')
    
    # New axis over the whole figureand a 1:1 aspect ratio
    # ax = fig.add_axes([0,0,1,1], frameon=False, aspect=1)
    ax = fig.add_axes([0.005,0.005,0.990,0.990], frameon=True, aspect=1)
    
    # Number of ring
    n = 50
    size_min = 50
    size_max = 50*50
              
    # Ring position 
    P = np.random.uniform(0,1,(n,2))
    
    # Ring colors
    C = np.ones((n,4)) * (0,0,0,1)
    
    # Alpha color channel goes from 0 (transparent) to 1 (opaque)
    C[:,3] = np.linspace(0,1,n)
    
    # Ring sizes
    S = np.linspace(size_min, size_max, n)
    
    # Scatter plot
    scat = ax.scatter(P[:,0], P[:,1], s=S, lw = 0.5,
                      edgecolors = C, facecolors='None')
    
    # Ensure limits are [0,1] and remove ticks
    ax.set_xlim(0,1), ax.set_xticks([])
    ax.set_ylim(0,1), ax.set_yticks([])
    
    
    def update(frame):
        global P, C, S
    
        # Every ring is made more transparent
        C[:,3] = np.maximum(0, C[:,3] - 1.0/n)
    
        # Each ring is made larger
        S += (size_max - size_min) / n
    
        # Reset ring specific ring (relative to frame number)
        i = frame % 50
        P[i] = np.random.uniform(0,1,2)
        S[i] = size_min
        C[i,3] = 1
    
        # Update scatter object
        scat.set_edgecolors(C)
        scat.set_sizes(S)
        scat.set_offsets(P)
        return scat,
    
    animation = FuncAnimation(fig, update, interval=10)
    # animation.save('../figures/rain.gif', writer='imagemagick', fps=30, dpi=72)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    # New figure with white background
    fig = plt.figure(figsize=(6,6), facecolor='white')
    
    # New axis over the whole figureand a 1:1 aspect ratio
    ax = fig.add_axes([0.005,0.005,.99,.99], frameon=True, aspect=1)
    
    # Number of ring
    n = 50
    size_min = 50
    size_max = 50*50
              
    # Ring position 
    P = np.random.uniform(0,1,(n,2))
    
    # Ring colors
    C = np.ones((n,4)) * (0,0,0,1)
    
    # Alpha color channel goes from 0 (transparent) to 1 (opaque)
    C[:,3] = np.linspace(0,1,n)
    
    # Ring sizes
    S = np.linspace(size_min, size_max, n)
    
    # Scatter plot
    scat = ax.scatter(P[:,0], P[:,1], s=S, lw = 0.5,
                      edgecolors = C, facecolors='None')
    
    # Ensure limits are [0,1] and remove ticks
    ax.set_xlim(0,1), ax.set_xticks([])
    ax.set_ylim(0,1), ax.set_yticks([])
    
    # plt.savefig("../figures/rain-static.png",dpi=72)
    plt.show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    n = 1024
    X = np.random.normal(0,1,n)
    Y = np.random.normal(0,1,n)
    T = np.arctan2(Y,X)
    
    plt.axes([0.025,0.025,0.95,0.95])
    plt.scatter(X,Y, s=75, c=T, alpha=.5)
    
    plt.xlim(-1.5,1.5), plt.xticks([])
    plt.ylim(-1.5,1.5), plt.yticks([])
    # savefig('../figures/scatter_ex.png',dpi=48)
    plt.show()

    from pylab import *
    
    size = 256,16
    dpi = 72.0
    figsize= size[0]/float(dpi),size[1]/float(dpi)
    fig = figure(figsize=figsize, dpi=dpi)
    fig.patch.set_alpha(0)
    axes([0,0,1,1], frameon=False)
    
    plot(np.arange(4), np.ones(4), color="blue", linewidth=8, solid_capstyle = 'butt')
    
    plot(5+np.arange(4), np.ones(4), color="blue", linewidth=8, solid_capstyle = 'round')
    
    plot(10+np.arange(4), np.ones(4), color="blue", linewidth=8, solid_capstyle = 'projecting')
    
    xlim(0,14)
    xticks([]),yticks([])
    show()

    from pylab import *
    
    size = 256,16
    dpi = 72.0
    figsize= size[0]/float(dpi),size[1]/float(dpi)
    fig = figure(figsize=figsize, dpi=dpi)
    fig.patch.set_alpha(0)
    axes([0,0,1,1], frameon=False)
    
    plot(np.arange(3), [0,1,0], color="blue", linewidth=8, solid_joinstyle = 'miter')
    plot(4+np.arange(3), [0,1,0], color="blue", linewidth=8, solid_joinstyle = 'bevel')
    plot(8+np.arange(3), [0,1,0], color="blue", linewidth=8, solid_joinstyle = 'round')
    
    xlim(0,12), ylim(-1,2)
    xticks([]),yticks([])
    show()

    from pylab import *
    
    subplot(2,2,1)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,1)',ha='center',va='center',size=20,alpha=.5)
    
    subplot(2,2,2)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,2)',ha='center',va='center',size=20,alpha=.5)
    
    subplot(2,2,3)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,3)',ha='center',va='center',size=20,alpha=.5)
    
    subplot(2,2,4)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,4)',ha='center',va='center',size=20,alpha=.5)
    
    # savefig('../figures/subplot-grid.png', dpi=64)
    show()

    from pylab import *
    
    subplot(2,1,1)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,1,1)',ha='center',va='center',size=24,alpha=.5)
    
    subplot(2,1,2)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,1,2)',ha='center',va='center',size=24,alpha=.5)
    
    # plt.savefig('../figures/subplot-horizontal.png', dpi=64)
    show()

    from pylab import *
    
    subplot(1,2,1)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,1)',ha='center',va='center',size=24,alpha=.5)
    
    subplot(1,2,2)
    xticks([]), yticks([])
    text(0.5,0.5, 'subplot(2,2,2)',ha='center',va='center',size=24,alpha=.5)
    
    show()

    import numpy as np
    import matplotlib.pyplot as plt
    
    eqs = []
    eqs.append((r"$W^{3eta}_{delta_1 
    ho_1 sigma_2} = U^{3eta}_{delta_1 
    ho_1} + frac{1}{8 pi 2} int^{alpha_2}_{alpha_2} d alpha^prime_2 left[frac{ U^{2eta}_{delta_1 
    ho_1} - alpha^prime_2U^{1eta}_{
    ho_1 sigma_2} }{U^{0eta}_{
    ho_1 sigma_2}}
    ight]$"))
    eqs.append((r"$frac{d
    ho}{d t} + 
    ho vec{v}cdot
    ablavec{v} = -
    abla p + mu
    abla^2 vec{v} + 
    ho vec{g}$"))
    eqs.append((r"$int_{-infty}^infty e^{-x^2}dx=sqrt{pi}$"))
    eqs.append((r"$E = mc^2 = sqrt{{m_0}^2c^4 + p^2c^2}$"))
    eqs.append((r"$F_G = Gfrac{m_1m_2}{r^2}$"))
    
    
    plt.axes([0.025,0.025,0.95,0.95])
    
    for i in range(24):
        index = np.random.randint(0,len(eqs))
        eq = eqs[index]
        size = np.random.uniform(12,32)
        x,y = np.random.uniform(0,1,2)
        alpha = np.random.uniform(0.25,.75)
        plt.text(x, y, eq, ha='center', va='center', color="#11557c", alpha=alpha,
                 transform=plt.gca().transAxes, fontsize=size, clip_on=True)
    
    plt.xticks([]), plt.yticks([])
    # savefig('../figures/text_ex.png',dpi=48)
    plt.show()

    import matplotlib
    #matplotlib.use('Agg')
    from pylab import *
    
    def tickline():
    
        size = 512,32
        dpi = 72.0
        figsize= size[0]/float(dpi),size[1]/float(dpi)
        fig = plt.figure(figsize=figsize, dpi=dpi)
        fig.patch.set_alpha(0)
    
        ax = axes([0.05, 0, 0.9, 1], frameon=False)
        xlim(0,10), ylim(-1,1), yticks([])
        ax = gca()
        ax.spines['right'].set_color('none')
        ax.spines['left'].set_color('none')
        ax.spines['top'].set_color('none')
        ax.xaxis.set_ticks_position('bottom')
        ax.spines['bottom'].set_position(('data',0))
        ax.yaxis.set_ticks_position('none')
        ax.xaxis.set_minor_locator(MultipleLocator(0.1))
        ax.plot(np.arange(11), np.zeros(11), color='none')
        return ax
    
    ax = tickline()
    ax.xaxis.set_major_locator(NullLocator())
    
    ax = tickline()
    ax.xaxis.set_major_locator(MultipleLocator(1.0))
    
    ax = tickline()
    ax.xaxis.set_major_locator(FixedLocator([0,2,8,9,10]))
    
    ax = tickline()
    ax.xaxis.set_major_locator(IndexLocator(3,1))
    
    ax = tickline()
    ax.xaxis.set_major_locator(LinearLocator(5))
    
    ax = tickline()
    ax.xaxis.set_major_locator(LogLocator(2,[1.0]))
    
    ax = tickline()
    ax.xaxis.set_major_locator(AutoLocator())

  • 相关阅读:
    序列化注意事项
    HTML5的新结构标签
    MVC模型
    CSS选择器权重计算规则
    HTML常用布局
    盒模型
    Spring Security 学习笔记-session并发控制
    java实例之随机点名
    java之方法重载
    java之方法
  • 原文地址:https://www.cnblogs.com/tszr/p/12231559.html
Copyright © 2011-2022 走看看