Matlabのhistcounts/histcounts2をPythonで
7509 ワード
Matlabで個人的によく使うhistcoutsとその2変数版のhistcounts2のやりかたメモ。
ヒストグラムをプロットするやり方
”python ヒストグラム” とかでググると
matplotlibのhistやhist2dの情報が見つかって、その返り値からcountをとってくる方法が色々と出てくる。
たとえばこんな感じ。
import numpy as np
import matplotlib.pyplot as plt
x = np.random.normal(loc=0, scale=1, size=1000)
y = np.random.normal(loc=0, scale=2, size=1000)
xEdge = np.arange(-3, 3, 0.1)
yEdge = np.arange(-6, 6, 0.2)
fig = plt.figure()
ax = fig.add_subplot(111)
(cnt, xBin, yBin, img) = ax.hist2d(x, y, bins=[xEdge, yEdge])
これはこれで良いのだけれど(ちなみにax.hist2dの4つめの返り値が何なのかは知らない)
いちいちプロットするのがまどろっこしい…と思っていたのだが、普通にnumpyにあった。
1変数の場合
import numpy as np
x=np.random.normal(loc=0, scale=1, size=1000)
xEdge=np.arange(-3, 3, 0.1)
(cnt, xBin) = np.histogram(x, bins=xEdge)
2変数の場合
import numpy as np
x = np.random.normal(loc=0, scale=1, size=1000)
y = np.random.normal(loc=0, scale=2, size=1000)
xEdge = np.arange(-3,3,0.1)
yEdge = np.arange(-6,6,0.2)
(cnt, xBin, yBin) = np.histogram2d(x, y, bins=[xEdge,yEdge])
import numpy as np
x=np.random.normal(loc=0, scale=1, size=1000)
xEdge=np.arange(-3, 3, 0.1)
(cnt, xBin) = np.histogram(x, bins=xEdge)
import numpy as np
x = np.random.normal(loc=0, scale=1, size=1000)
y = np.random.normal(loc=0, scale=2, size=1000)
xEdge = np.arange(-3,3,0.1)
yEdge = np.arange(-6,6,0.2)
(cnt, xBin, yBin) = np.histogram2d(x, y, bins=[xEdge,yEdge])
これで簡単にcntをz-scoreにしてプロットとかできて捗る。
Author And Source
この問題について(Matlabのhistcounts/histcounts2をPythonで), 我々は、より多くの情報をここで見つけました https://qiita.com/HiroMiyawaki/items/9f07b33fa52a802cf7dc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .