【Python】Mattplotlibグラフィックスライブラリの初期プローブ

4491 ワード

MatplotlibはPythonの2 D&3 Dグラフィックスライブラリであり、様々なコピーフォーマットとインタラクティブ幻剣におけるプラットフォーム間形式の印刷品質アイコンを生成している.Matplot構文はMatlabに似ており、描画機能が強く、使いやすい.
「個人は決して集団の力を超えてはならない」(Ken Blanchard).Pythonの強さの原因の一つは、オープンソースであり、優れたプログラマーが豊富なクラスライブラリを提供していることです.Matplotlibはその一人だが、創業者のJohn D.Hunterは早世し、今年8月に癌による合併症で死んだ.この優秀なプログラマーに敬意を表します!
matplotをインストールする前にNumpyをインストールします.
Numpyはpythonの拡張パッケージでもあり、次のような基礎的な科学計算を提供します.
  • 強力なN次元マトリクスオブジェクト
  • C/C++およびFortranコード統合ツール
  • 有用な線形代数、フーリエ変換および乱数生成関数
  • Numpyのダウンロードアドレス:http://scipy.org/Download
    Matlabplotのダウンロードアドレス:https://github.com/matplotlib/matplotlib/downloads
    私のcsdnリソースからダウンロードすることもできます(説明ドキュメント付き):
    インストールは簡単なので、ダブルクリックすればいいです.
    以下に、正弦波三角関数y=sin(x)を簡単に描画する例を示す.
    # plot a sine wave from 0 to 4pi
    from pylab import *
    x_values = arange(0.0, math.pi * 4, 0.01)
    y_values = sin(x_values)
    plot(x_values, y_values, linewidth=1.0)
    xlabel('x')
    ylabel('sin(x)')
    title('Simple plot')
    grid(True)
    savefig("sin.png")
    show()
    
    効果は図の通りです.
    pylabのplot関数はmatlabとよく似ていますが、後で属性値を増やしたり、
    help(pylab.plot)
    説明を表示します.
    例えば、「r*」、すなわち赤色、星形で図を描く.
    import os
    import math
    import pylab
    y_values = []
    x_values = []
    num = 0.0
    #collect both num and the sine of num in a list
    while num < math.pi * 4:
        y_values.append(math.sin(num))
        x_values.append(num)
        num += 0.1
    
    pylab.plot(x_values,y_values,'r*')
    pylab.show()

    MatplotではLatexを使用して数式を編集できます.例えば一番上のMatplotlibのロゴ、背景の公式はLatexです.
    """
    Thanks to Tony Yu  for the logo design
    """
    
    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    
    mpl.rcParams['xtick.labelsize'] = 10
    mpl.rcParams['ytick.labelsize'] = 12
    mpl.rcParams['axes.edgecolor'] = 'gray'
    
    
    axalpha = 0.05
    #figcolor = '#EFEFEF'
    figcolor = 'white'
    dpi = 80
    fig = plt.figure(figsize=(6, 1.1),dpi=dpi)
    fig.figurePatch.set_edgecolor(figcolor)
    fig.figurePatch.set_facecolor(figcolor)
    
    
    def add_math_background():
        ax = fig.add_axes([0., 0., 1., 1.])
    
        text = []
        text.append((r"$W^{3\beta}_{\delta_1 \rho_1 \sigma_2} = U^{3\beta}_{\delta_1 \rho_1} + \frac{1}{8 \pi 2} \int^{\alpha_2}_{\alpha_2} d \alpha^\prime_2 \left[\frac{ U^{2\beta}_{\delta_1 \rho_1} - \alpha^\prime_2U^{1\beta}_{\rho_1 \sigma_2} }{U^{0\beta}_{\rho_1 \sigma_2}}\right]$", (0.7, 0.2), 20))
        text.append((r"$\frac{d\rho}{d t} + \rho \vec{v}\cdot
    abla\vec{v} = -
    abla p + \mu
    abla^2 \vec{v} + \rho \vec{g}$", (0.35, 0.9), 20)) text.append((r"$\int_{-\infty}^\infty e^{-x^2}dx=\sqrt{\pi}$", (0.15, 0.3), 25)) #text.append((r"$E = mc^2 = \sqrt{{m_0}^2c^4 + p^2c^2}$", # (0.7, 0.42), 30)) text.append((r"$F_G = G\frac{m_1m_2}{r^2}$", (0.85, 0.7), 30)) for eq, (x, y), size in text: ax.text(x, y, eq, ha='center', va='center', color="#11557c", alpha=0.25, transform=ax.transAxes, fontsize=size) ax.set_axis_off() return ax def add_matplotlib_text(ax): ax.text(0.95, 0.5, 'matplotlib', color='#11557c', fontsize=65, ha='right', va='center', alpha=1.0, transform=ax.transAxes) def add_polar_bar(): ax = fig.add_axes([0.025, 0.075, 0.2, 0.85], polar=True) ax.axesPatch.set_alpha(axalpha) ax.set_axisbelow(True) N = 7 arc = 2. * np.pi theta = np.arange(0.0, arc, arc/N) radii = 10 * np.array([0.2, 0.6, 0.8, 0.7, 0.4, 0.5, 0.8]) width = np.pi / 4 * np.array([0.4, 0.4, 0.6, 0.8, 0.2, 0.5, 0.3]) bars = ax.bar(theta, radii, width=width, bottom=0.0) for r, bar in zip(radii, bars): bar.set_facecolor(cm.jet(r/10.)) bar.set_alpha(0.6) for label in ax.get_xticklabels() + ax.get_yticklabels(): label.set_visible(False) for line in ax.get_ygridlines() + ax.get_xgridlines(): line.set_lw(0.8) line.set_alpha(0.9) line.set_ls('-') line.set_color('0.5') ax.set_yticks(np.arange(1, 9, 2)) ax.set_rmax(9) if __name__ == '__main__': main_axes = add_math_background() add_polar_bar() add_matplotlib_text(main_axes) plt.show()

    (転載は作者と出典を明記してください:http://blog.csdn.net/xiaowei_cqu許可なく商業用途に使用しないでください)