MOMOSE Rieko
  • Home
  • CV
  • Research
  • Japanese
    • Research
    • Profile
    • Link
    • Memo
  • Gallery
5-1-5 Kashiwa-no-Ha, Kashiwa City, Chiba, 277-8582, Japan
tel : +81-4-7136-3155
matplotlibの覚え書き(他のやりかたが分かれば随時更新。。。)



 もくじ
  • ・+と−で異なる長さのerrorbarをつけたい
  • ・散布図の上に密度コントアを描きたい
  • ・水平方向に複数のbarを描きたい

・+と−で異なる長さのerrorbarをつけたい

 errorbar(x,y,yerr=[y_er*100,y_er],fmt='bo') # yerr=[-, +]のerrorbar
 yscale("log",nonposy='clip')         # -のerrorbarが負の値を含む場合のおまけ



   図:y軸をlogにした、長さの違うerrorbarのplot
Picture

・散布図の上に密度コントアを描きたい

 scatter(x,y,marker='o',s=10.,c='c',alpha=0.4)    # 散布図
 x_range = arange(0.0,3.1,0.1)          # x軸メッシュの(min, max, bin)
 y_range = arange(-3.0,0.1,0.1)        # y軸メッシュの(min, max, bin)
 his, xhis, yhis = histogram2d(x, y, bins=(31,31), 
  range=((0.0,3.0),(-3.0,0.0)))        # binsはメッシュの数。range と bins は arange と合わせる
 xx, yy = meshgrid(x_range,y_range)     # xx, yyに、x, yを2次元に変換した配列を代入。

                       ちなみにx, yは1次元の配列
 con = contour(xx, yy, his.transpose(), 4, 
  linewidths=1.5, colors='black')         # コントアをひく。transpose( ) は転置


  plotの中にデータ点の2Dヒストグラムを作り、ヒストグラムの値をもとにコントアにしている
  plotをメッシュで区切るためのパラメータは arange( ) で設定
  2Dヒストグラムのパラメータは histogram2d( ) で設定
  コントア作画時のパラメーターは、contour(x, y, 2Dヒストグラム(x, y)に位置するbin内の点数, コントア数)

  図1と2の違いは、arange の bin のサイズ。上は0.05、下は0.1にした場合。


  コントア内を塗りたい場合は次の方法があるらしい
 1) contourf(xx, yy, his.transpose(), 4, linewidths=1.5,  # コントア内の色付け
   colors=('w','b','g','yellow','r'), alpha=0.5)
 2) pcolor(xx, yy, his.transpose(), shading='flat')    # bin毎に色付け
  colorbar()

  cool()

  1) 色の指定は、colors=('背景色', 'lower level', ..., 'higher level') となっている
  2) カラーバーを表示させたい際は colorbar() とする。cool() は色の種類(参照)

  図3左・右がそれぞれ、1)・2)に対応している。
Picture
図3
Picture
図1
Picture
図2

・水平方向に複数のbarを描きたい

 broken_barh([ (85, 20), (215, 55) ], (2,3), facecolors=('yellow','green')) # 水平barを描く基本形
 broken_barh([ (80, 36), (129, 45), (201, 66) ] , (7,3), 

  facecolors=('yellow','#8b4513','green'),
  line'dashed', linewidth=6.)            # barの外枠の線種を変えて太くした場合
 broken_barh([ (180, 70), (266, 89), (320, 100), (600, 100)] , (12,3),
  facecolors=('#00ff00','#5f9ea0','cyan','#87ceeb'),
  edgecolor='red')                 # barの外枠の線の色を変えた場合


  broken_barh が水平方向のbarを描く関数(ていうの?)
  中のパラメーターは、((bar x_value, bar x_width), (y_value, y_width)) が基本
  facecolors はbarそのものの色を指定


  edgecolor、linestyle、linewidth はbar外縁部の色、種類、太さを指定

  図では下から順に上の描き方に対応している。
Picture
Create a free web site with Weebly