问答详情
源自:3-3 子图与多种图形绘制

有木有代码呀

请问这个课有分享的代码么

提问者:qq_慕仰5005434 2018-12-19 19:02

个回答

  • 星星你好
    2019-01-20 16:13:12

    #散点图 scatter
    fig = plt.figure()
    # fig.add_subplot(3,3,1)
    ax = fig.add_subplot(3,3,1)
    n = 128
    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])
    #画散点的 c是颜色,alpha是透明度
    ax.scatter(X,Y,s=75,c=T,alpha=0.5)
    #x和y的范围limit
    plt.xlim(-1.5,1.5),plt.xticks([])
    plt.ylim(-1.5,1.5),plt.yticks([])
    plt.axis
    plt.title("scatter")
    plt.xlabel("x")
    plt.ylabel("y")
    #plt.show()
    
    #柱状图
    fig.add_subplot(332)
    n =10
    X = np.arange(n)
    Y1 = (1-X / float(n)) * np.random.uniform(0.5,1.0,n)
    Y2 = (1-X /float(n)) * np.random.uniform(0.5,1.0,n)
    plt.bar(X,+Y1, facecolor = '#9999ff', edgecolor = 'white')
    plt.bar(X,-Y2, facecolor = '#9999ff', edgecolor = 'white')
    
    for x,y in zip(X,Y1):
        plt.text(x+0.4,y+0.05,'%.2f' % y, ha = 'center', va= 'bottom')
    
    for x,y in zip(X,Y2):
        plt.text(x+0.4,-y-0.05,'%.2f' % y, ha='center', va ='top')
    
    
    
    #饼图
    fig.add_subplot(333)
    n =20
    Z = np.ones(n)
    Z[-1] =2
    plt.pie(Z,explode=Z* .05,colors=['%f' % (i / float(n)) for i in range(n)],
            labels=['%.2f' % (i/ float(n)) for i in range(n)])
    plt.gca().set_aspect('equal')
    plt.xticks([]), plt.yticks([])
    
    
    
    #极坐标 polar = True
    fig.add_subplot(334,polar = True)
    n =20
    theta = np.arange(0.0, 2 * np.pi, 2 * np.pi /n)
    radii = 10 * np.random.rand(n)
    # plt.plot(theta,radii)
    plt.polar(theta,radii)
    
    #热图 heatmap
    fig.add_subplot(335)
    from matplotlib import  cm
    data = np.random.rand(3,3)
    cmap = cm.Blues
    map = plt.imshow(data,interpolation='nearest', cmap=cmap, aspect="auto", vmin=0,vmax=1)
    
    
    #3D图
    from  mpl_toolkits.mplot3d import Axes3D
    ax = fig.add_subplot(336,projection='3d')
    ax.scatter(1,1,3,s=100)
    
    #hot map 热例图
    fig.add_subplot(313)
    def f(x,y):
        return (1-x / 2+x ** 5 + y **3) * np.exp(-x **2 - y**2)
    n=256
    x = np.linspace(-3,3,n)
    y = np.linspace(-3,3,n)
    X,Y = np.meshgrid(x,y)
    plt.contourf(X,Y,f(X,Y),8,alpha =.75, cmap=plt.cm.hot)
    
    #保存图片
    plt.savefig("./data/fig.png")
    plt.show()


  • 权御天下w
    2019-01-19 14:59:13

    import numpy as np

    from numpy.linalg import *

    import matplotlib.pyplot as plt

    def main():

        '''

        x=np.linspace(-np.pi,np.pi,256,endpoint=True)

        c,s=np.cos(x),np.sin(x)

        plt.figure(1)

        plt.plot(x,c,color="purple",linewidth=1.0,linestyle="-",label="COS",alpha=0.5)

        plt.plot(x,s,"r",linewidth=0.5,label="SIN")

        plt.title("cos & sin")

        ax=plt.gca()

        ax.spines["right"].set_color("none")

        ax.spines["top"].set_color("none")

        ax.spines["left"].set_position(("data",0))

        ax.spines["bottom"].set_position(("data",0))

        ax.xaxis.set_ticks_position("bottom")

        ax.yaxis.set_ticks_position("left")

        plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],

                   [r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])

        plt.yticks(np.linspace(-1,1,5,endpoint=True))

        for label in ax.get_xticklabels()+ax.get_yticklabels():

            label.set_fontsize(16)

            label.set_bbox(dict(facecolor="yellow",edgecolor="blue",alpha=0.2))

        plt.legend(loc="upper left")

        plt.grid()

        #plt.axis([-1,1,-0.5,1])

        plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="blue",alpha=0.5)

        t=1

        plt.plot([t,t],[0,np.cos(t)],"y",linewidth=1,linestyle="--")

        plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),

                     textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=0.2"))

        plt.show()

        '''

        fig=plt.figure()

        ax=fig.add_subplot(331)

        n=128

        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])

        ax.scatter(X,Y,s=75,c=T,alpha=0.5)

        plt.xlim(-1.5,1.5),plt.xticks([])

        plt.ylim(-1.5,1.5),plt.yticks([])

        plt.axis

        plt.title("scatter")

        plt.xlabel("x")

        plt.ylabel("y")

        

        fig.add_subplot(332)

        n=10

        X=np.arange(n)

        Y1=(1-X/float(n))*np.random.uniform(0.5,1.0,n)

        Y2=(1-X/float(n))*np.random.uniform(0.5,1.0,n)

        plt.bar(X,+Y1,facecolor="red",edgecolor="white")

        plt.bar(X,-Y2,facecolor="green",edgecolor="white")

        for x,y in zip(X,Y1):

            plt.text(x+0.4,y+0.05,'%.2f'%y,ha="center",va="bottom")

            plt.text(x+0.4,-(y+0.05),'%.2f'%y,ha="center",va="top")

            

        fig.add_subplot(333)

        n=20

        Z=np.ones(n)

        Z[-1]*=2

        plt.pie(Z,explode=Z*.05,colors=['%f'%(i/float(n)) for i in range(n)],

                labels=['.2%f'%(i/float(n)) for i in range(n)])

        plt.gca().set_aspect('equal')

        plt.xticks([]),plt.yticks([])

        

        fig.add_subplot(334,polar=True)

        n=20

        theta=np.arange(0.0,2*np.pi,2*np.pi/n)

        radii=10*np.random.rand(n)

        plt.plot(theta,radii)

        

        fig.add_subplot(335)

        from matplotlib import cm

        data=np.random.rand(3,3)

        cmap=cm.Blues

        map=plt.imshow(data,interpolation='nearest',cmap=cmap,aspect='auto',vmin=0,vmax=1)

        

        from mpl_toolkits.mplot3d import Axes3D

        fig.add_subplot(336,projection="3d")

        plt.scatter(1,1,3)

        

        fig.add_subplot(313)

        def f(x,y):

            return (1-x/2+x**5+y**3)*np.exp(-x**2,-y**2)

        n=256

        x=np.linspace(-3,3,n)

        y=np.linspace(-3,3,n)

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

        plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)

            

        plt.show

        

        

    if __name__=='__main__':

        main()