.Numpyライブラリとmatplotlibのを学ぶのライブラリー
(1)numpyのライブラリはじめに:N次元アレイの動作をサポートする科学技術計算パッケージ、大行列、成熟した放送ライブラリ、ベクトル演算、線形代数、フーリエ変換、乱数生成処理、及び無C ++ / Fortranの言語とをシームバインディング
np.array([1,2,3])リストされた配列に、np.array((1,2,3))アレイにタプル; np.array(範囲(5))対象範囲の配列に変換します;ビルトイン範囲()関数に似てnp.arange(8)
np.linspace(0,10,11は、エンドポイント=偽)は、エンドポイント演算アレイを含んでいません
(2)matplotlibのライブラリ概要:Pythonプログラミング言語を拡張し、数値数学パッケージさ numpyのビジュアルインターフェース。そのようなTkinterの、wxPythonを、QtのGTK +などの一般的なツールパッケージを使用して、グラフィカル・ユーザ・インターフェースである、またはアプリケーションは、組み込みグラフィックス・アプリケーション・プログラム・インターフェース(API)を提供します。加えて、それはまた、MATLABと非常に類似して設計されpylabインターフェースの(例えばオープングラフィックライブラリOpenGLのような)画像処理ライブラリをベースmatplotlibの-どのように使用しないけれども。scipyのダウンロードは、グラフィカルにmatplotlibのに描かれています。
2を結合。2つのライブラリの使用例を
#- * -コーディング:UTF-8 - * - "" " スパイダーエディタ 。この一時的なスクリプトファイルである " "" 印刷(" スタート" ) のインポートnumpyのNP AS インポートはPLT AS matplotlib.pyplot インポートmatplotlibの matplotlib.rcParams [ " font.family ' ] = ' SimHei ' #は、デフォルトのフォント設定 [matplotlib.rcParamsを' font.sans serif- ' ] = [ ' SimHei ' ] #は、デフォルトのフォント設定 ラベルは=([np.array '最初の週"、「第二週」、「第3週」、「4週」、「5週」、「6週間」、「第七週」 ]) # 7 nAttr = #の数エッジ データ= np.array ([95,85,90,95,80,85,100]) #のデータ値 角度np.linspace =(0,2 * np.pi、nAttr、エンドポイント=偽)#の角度設定、0-2PI、隔壁7 データnp.concatenateは=((データ、[データが[0])) #とプロット機能を描画促進する配列データの角度と端に閉鎖端部、 角= np.concatenate((角度、[角度[0])) 図 = plt.figure(FaceColorと=" ピンク") #1 外側カラーグラフィックの周囲 plt.subplot(111、極性= TRUE) #サブパーティションは、システム極座標作成 plt.plot(角度、データ、' BO- '、カラー= ' Gを'線幅= 2として、 )#描か角度データおよび不規則な多角形に従って plt.fill(角度、データ、のFaceColor = ' G '、アルファ= 0.25) #の塗りつぶし色 plt.thetagrids(180角* / np.pi、ラベル) #1 、例えば設定タブ週Xの plt.figtext(0.52,0.95、' 14-カインド図の結果'、HA = ' センター')#設定されたタイトルの plt.grid(真) plt.savefig(' dota_radar.JPG ' ) plt.show()
結果写真:
III。カスタム手描き風
コードは以下の通りであります:
#- * -コーディング:UTF-8 - * - インポートNP AS numpyの から PIL インポートイメージ・ クラスの画像: DEF __init__ (自己位置): self.position = 位置 DEF Hand_drawn_style(セルフ): vec_el = np.pi / 2 #光源の頂角、ラジアン値 vec_az = np.pi / 3 #ラジアンにおけるソース方位角、 深さ。6 = #の深さ量、値が小さいほど白い背景領域に近い、背景領域の大きな値により近い黒に IM =イメージ.Open(self.position).convert(' L ') #が開かれ、グレースケール画像に変換されます。 np.asarray = A(IM).astype(' フロート' ) グラ = np.gradient(A) #は、画像のグレー値勾配をフェッチ grad_x、grad_y =グラ #それぞれ水平および垂直勾配画像は、値を取る grad_x = grad_x *深さ/ 100 。 grad_y = grad_y深さ* / 100 。 DX = np.cos(vec_el)* np.cos(vec_az)#1 、x軸のソース影響 のDy = np.cos(vec_el)* np.sin(vec_az) #のソースy軸上の効果 DZ = np.sin(vec_el) #1 、z軸効果の源 A = np.sqrt(grad_x grad_y ** 2 + 2 + 1 ) uni_xGrad_x = / A uni_y = grad_y / A uni_z = 1 / A A2 = 255 *(DX + Dyをuni_x * * * uni_z uni_y + DZ)#のソース正規 A2のa2.clip =(0、255) #オーバーフロー防止 = Image.fromarray IM2(a2.astype(' UINT8 ')) #再構成画像 im2.save(' 4d0424dd81_.jpg ')#保存画像 im2.show() #の表示画像 IF __name__ == ' __main__ ': 位置 = ' 4d0424dd81.jpg ' ピクチャ(位置).Hand_drawn_style()
レンダリング:
IV。分布プロット
コード
import numpy as np import matplotlib import scipy.stats matplotlib.use('TkAgg') import matplotlib.pyplot as plt import matplotlib.mlab as mlab if __name__ == "__main__": # 期望0,标准差1,条数50 mu, sigma, num_bins = 0, 1, 500 # 1M个随机数 x = mu + sigma * np.random.randn(10000) # 正态分布的数据, 颜色的透明度0.5 n, bins, patches = plt.hist(x, num_bins, density=True, facecolor='blue', alpha=0.5) #のヒストグラム関数は、X 1は、確率密度として表さ=ノルム、x軸の値である #すなわち、緑色の正方形として、カラー深さパラメータ0.5。Nリターン確率、左側のブロックのX直線の値、及び各対象ブロック #適合曲線 Y = scipy.stats.norm.pdf(ビン、MU、シグマ) plt.plot(ビン、Y、' r--の' ) plt.xlabel(' 期待' ) plt.ylabel(' 確率' ) plt.title(' 正規分布のヒストグラム:。$ \ MU = $ 0、$ \ Sigma社1 = $ " ) plt.subplots_adjust(左 = 0.15) #マージン左 plt.grid(真) #オープングリッド線の PLTを.SHOW()
結果の写真