pythonの中でmatplotlibは図形を描きます.

4723 ワード

matiplotlib pythonの最も有名なグラフィックライブラリです.matlabと似たようなコマンドAPIがセットで提供されています.このバッグの下には、pylot、pylotなど、多くのオブジェクトがあります.pylotとnumpyの2つのモジュールが統合されています.Pylabとpylot(http://matplotlib.org/api/pyplot_api.html)いずれもオブジェクトや属性によって画像を操作することができます.Pylotにはfigure、Axesオブジェクトなど、画像に対して詳細な処理を行うオブジェクトもたくさんあります.いくつかの簡単でよく使われる例によって操作します.
  • は、pylotによって散点図を描くことにより、scater関数を呼び出し、異なる大きさの点の散点図を描くこともできる.例は以下の通りです.
  • # .*.coding : utf-8 .*.
    import numpy as np
    import matplotlib.pyplot as pltx = np.arange(0,20,2)y = np.linspace(0,20,10)
    plt.figure()
    plt.scatter(x,y,c='r',marker='*')
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.title('$X*Y$')
    plt.show()
    2.曲線図を描いて、plot関数で曲線図を描いて、次のようになります.
    import numpy as np
    import random
    from matplotlib import pylab as pl
    from matplotlib import pyplot as plt
    
    #      
    plt.figure(figsize=(8,6))   #       ,     
    x = np.random.randn(10)*10
    y = np.pi*np.sin(x) + 8
    x1 = np.arange(0,10,1)
    #lines = plt.plot(x,y)
    plt.plot(x,y,label = '$np.pi*np.sin(x)+8$',color='red',linewidth = 2)plt.plot(x,y,'bo')
    plt.title('Y=a*sin(x)+b')
    plt.ylabel('Function-Y')
    plt.xlabel('Var-X')
    plt.legend()   #             ,    plt.plo(x,y,label='')  
    #plt.setp(lines,color = 'r',linewidth = 2.5)
    
    plt.show()
    3.複数の軸の上に画像を描き、一つのfigurに入れます.subplotを通じて、またuplot 2 gridなども実現できます.
    import numpy as np
    import matplotlib.pylab as plt'''              ,  subplot,plot()           ,     '''def f(t):
        return np.exp(-t) * np.cos(2*np.pi*t)
    t1 = np.arange(0.0, 5.0, 0.1)
    t2 = np.arange(0.0, 5.0, 0.02)
    plt.figure(1)
    plt.subplot(211)  #subplot(numRows, numCols, plotNum), :subplot(221)
    plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
    plt.title('pylab first example',fontsize = 16)
    plt.subplot(212)
    plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
    plt.title('pylab second example',fontsize = 16)
    
    plt.show()
    4.      テキストはテキストを図に表示し、画像間の設定、座標設定などを行います.
    # -*- coding: utf-8 -*-
    import matplotlib.pyplot as plt
    #           
    fig = plt.figure()
    fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')#figure   ax = fig.add_subplot(111)   #figure     axfig.subplots_adjust(top=0.85)
    ax.set_title('axes title')  # ax    
    ax.set_xlabel('xlabel')     # ax     
    ax.set_ylabel('ylabel')     # ax     
    ax.text(3, 8, 'boxed italics text in data coords', style='italic',
            bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})
    ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
    ax.text(3, 2, unicode('unicode: Institut f\374r Festk\366rperphysik', 'latin-1'))
    ax.text(0.95, 0.01, 'colored text in axes coords',
            verticalalignment='bottom', horizontalalignment='right',
            transform=ax.transAxes,
            color='green', fontsize=15)ax.plot([2], [1], 'o')      #ax  ,        ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
                arrowprops=dict(facecolor='black', shrink=0.05))
    ax.axis([0, 10, 0, 10]) #   -     
    plt.show()
    5.  histでヒストグラムを描く
    import numpy as np
    import matplotlib.pyplot as pltx = np.arange(0,1000,0.5)y = np.random.rand(2000)*10
    n,bins,patches = plt.hist(y,50,normed=1,alpha=0.8)
    plt.title('Hist of Y')
    plt.xlabel('Smarts')
    plt.ylabel('NormProbability')
    plt.text(2,0.12,'$\mu=10,\\sigma=20$')
    plt.grid(True)
    plt.show()
    6.  バーで棒グラフを描く
    import numpy as np
    import matplotlib.pyplot as plt
    x = np.arange(0,1000,0.5)
    y = np.random.rand(2000)*10n,bins,patches = plt.hist(y,50,normed=1,alpha=0.8)plt.title('Hist of Y')
    plt.xlabel('Smarts')
    plt.ylabel('NormProbability')
    plt.text(2,0.12,'$\mu=10,\\sigma=20$')
    plt.grid(True)
    plt.show()
    7.      図形中の重要な点についてコメントし、annotateを用いて修正機能を実現します.具体的な使い方は公式文書を使うことができます.以下のとおりです
    # .*. coding : utf-8 .*.
    import numpy as np
    import matplotlib.pyplot as pltx = np.arange(-10,10,1)y = 2*(x**2)-5*x+np.pi
    maxy = min(y)
    maxyx = x[np.argmin(y)]
    plt.figure()
    plt.plot(x,y,'-',color='red',linewidth=2.5,label='$2*(x^2)-5*x+np.pi$')
    plt.annotate('Max y at points',xy=(maxyx,maxy),xytext=(maxyx+1,maxy+10),
                 arrowprops=dict(facecolor='black', shrink=0.01),fontsize=12)
    #xy     ,xytext        
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.xlim(-11,11)
    plt.title('plot of y=x^2')plt.show()
    matplotlib公式文書には多くの絵を描く方法が含まれています.例えば、時系列の処理、例えば、acorr;画像の処理、信号処理、数学式など.公式文書(http://matplotlib.org/py-modindex.html)