時々私事この広告は、90日以上更新していないブログに表示しています。meanについてi番目のデータが\(y_i\)という値を取り、エラー\(\sigma\)を持つとする。\omega_i}}と表される。18:07シミュレーションでの星形成の扱いTweet広告を非表示にするもっと読むコメントを書く2015-08-03SextractorをインストールするSextractorずっとmatplotlibについて書いてきたのでたまには天文らしい記事にします笑。天体検出ソフトのSextractorのインストールの仕方についてです。Sextractorはfits画像から天体を検出して測光、簡単なサイズ測定なんかをやってくれる便利なソフトです。HSTの画像に走らせるとこんな感じで検出してくれます。versionのsourceから最新版をダウンロードできます。現在v2.19.5が最新ですが、自分の環境では後でmakeした際にエラーを吐かれました汗。現在v2.5.0を入れてます。うまくインストールできなかったら古いバージョンを試してみてください。ダウンロードしたファイルを展開するとsextractor-2.5.0という名前のディレクトリになるはずなので、これを適当なディレクトに置きます。installとコマンドを打ちます。エラーがでなければこれでインストール完了です。うまくインストールできているか確認するにはターミナルでsexと打ってみて下のような画面がでるか確認してみてください。表示されればおしまいです。Sextractorの使い方はそのうち書きます。あれ?表示されてるバージョン違うような・・・。00:35SextractorをインストールするTweet広告を非表示にするもっと読むコメントを書く2015-07-29matplotlibでヒストグラムの作成matplotlibmatplotlibでヒストグラムを作ってみたのでメモ。matplotlibを使えばヒストグラムが非常に簡単に作れます。gnuplotよりもおすすめです。plt.histに配列を与えればそれだけでヒストグラムにしてくれます。乱数で平均1、分散1のガウシアンの分布を発生させてみます。最近知ったんですがpythonのrandomはメルセンヌツイスタで発生させてくれているそうです。気が利いてますね(Cのrandとは・・・)。簡単にやろうと思えばplt.hist(配列,binの数)を指定するだけで書けますが一応オプションの説明をします。重み(第一引数と同じサイズの配列を与えて、重みを付けます。ヒストグラムなので通常1の重みを持つわけですが、配列に1以外を入れることで重み付けすることが可能です。np.arange(-5,5,0.01)plt.xlabel("x")plt.ylabel("N")plt.title("平均0,分散1の正規分布に従って生成した乱数のヒストグラム")plt.hist(nor,bins=20,range=(-4,4))plt.plot(x,norm.pdf(x)*200,lw=3,color="r")plt.show()確率密度関数に従う乱数発生法についてはそのうち書きます。これで終わりなんですがオプションについてちょっと解説。normedについてこれは便利です。自動で規格化してくれます。自分で底面積がいくつで・・・とか考えなくてよいです。np.arange(-5,5,0.01)plt.xlabel("x")plt.ylabel("N")plt.title("平均0,分散1の正規分布に従って生成した乱数のヒストグラム")plt.hist(nor,bins=20,range=(-4,4),normed=True)plt.plot(x,norm.pdf(x),lw=3,color="r")plt.show()みごと規格化されました。確率密度関数とぴったりです。weightについて[0.5,1.5,2.5]の配列を1刻みでヒストグラムにすると、普通はすべてのbinで高さ1になりますが、weightの配列を[1,2,3]とか与えてやると、高さが1,2,3になります。19:29matplotlibでヒストグラムの作成Tweet広告を非表示にするもっと読むコメントを書く2015-07-25matplotlibで領域の図示matplotlibmatplotlibで領域に色を付けてみたのでメモ。fill_between関数fill関数を使うと大体できます。sin(x)とcos(x)の間の領域に色を付ける。sin(x)とcos(x)の間に色を付けてみます。fill_betweenは3つの変数を取ります。この2つの間を塗りつぶすあとはオプションでfacecolorは色、alphaは透過度なんかを指定できます。図示の条件がついた場合は少し面倒になります。xの範囲指定)になるとwhereでは書けません。下のコードではグラフを書く部分と色を塗る部分を完全に分けています。np.cos(x1)plt.fill_between(x1,z1,z2,where=z1>z2,facecolor='y',alpha=0.5)plt.show()さらに複雑な場合3つ以上の関数で領域に色を塗る場合にはminimum関数やmaximum関数を使います。5\]この条件を満たす領域に色を塗ってみます。minimum(y2,y4)plt.fill_between(x1,y3,y5,where=y5>y3,facecolor='y',alpha=0.5)plt.plot(x1,y2,color="k")plt.plot(x1,y3,color="k")plt.plot(x1,y4,color="k")plt.show()ちょっとごちゃごちゃしてますがこんな感じでしょうか。おまけ座標が分かっていてその内部を塗りつぶす場合はfill関数が楽です。長方形を図示したいような場合はこっちがいいです。例(1,0),(2,0.3),(2,1),(1.4,0.7),(1,1)の内部の塗りつぶし。20:46matplotlibで領域の図示Tweet広告を非表示にするもっと読むコメントを書く2015-07-25はてなブログでフォントの変更はてな前々からフォントが読みにくい(特に数字)と思っていたので、はてなブログでフォントの変更をしてみました。(id:tosssaurus)さんの記事を参考にさせていただきました。http://itkeijyoshilog.hatenablog.com/entry/2015/02/16/201000トミーさんありがとうございます。フォントの変更は意外と簡単です。デザイン→カスタマイズ→デザインCSSといってコードを貼るだけです。19:38はてなブログでフォントの変更Tweet広告を非表示にするもっと読むコメントを書く2015-05-30初めてのmatplotlib(対数グラフ)matplotlib今回は対数のグラフをmatplotlibで描いてみます。グラフを対数にするにはplt.xscale("log"),plt.yscale("log")というコマンドを使用します。例としてx軸が対数で直線のグラフを描いてみましょう。log(x)\]をプロットしてみましょう。ちなみにnumpyで作ったリストに対して数学関数をつかうにはnp.~とする必要があります。ここではnumpyで作ったxの配列に対してlogを取りたいのでnp.log(x)としています。np.log(x)plt.plot(x,y)plt.show()y軸もlogにしたい場合は、plt.yscale("log")を追加して下さい。グリッド線を入れたい場合は、plt.grid(which="both")とすると下の図のようにできます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。