Numpy のランダム指数分布を使用して、乱数の配列を作成しようとしています。私はこれで問題なく動作していますが、私のプロジェクトには 1 つの追加の要件があり、それは特定の値を持つ配列要素の数を正確に指定する機能です。
説明させてください (コードは以下にありますが、ここで説明します): ランダムな指数分布を生成し、データのヒストグラムをプロットして、素敵な指数曲線を作成します。私が本当にできるようにしたいのは、変数を使用してこの曲線の y 切片 (曲線が y 軸と交わる点) を指定することです。ヒストグラムのビンの数を変更することで基本的な方法でこれを実現できますが、これはプロットのみを変更し、元のデータは変更しません。
ここにコードの骨を挿入しました。いくつかのコンテキストを与えるために、私は銀河の指数円盤を作成しようとしています。したがって、生成したいランダム配列は半径の配列であり、指定できるようにしたい変数は銀河の中心の数密度です:
import numpy as N
import matplotlib.pyplot as P
n = 1000
scale_radius = 2
central_surface_density = 100 #I would like this to be the controlling variable, even if it's specification had knock on effects on n.
radius_array = N.random.exponential(scale_radius,(n,1))
P.figure()
nbins = 100
number_density, radii = N.histogram(radius_array, bins=nbins,normed=False)
P.plot(radii[0:-1], number_density)
P.xlabel('$R$')
P.ylabel(r'$\Sigma$')
P.ylim(0, central_surface_density)
P.legend()
P.show()
このコードは、次のヒストグラムを作成します。
要約すると、ヒストグラムのプロット方法を変更するのではなく、データの生成方法を制御することで、このプロットが y 軸を横切る場所を指定できるようにしたいと考えています。
さらに明確にするためのヘルプやリクエストは大歓迎です。