Numpyとpandas(私は実験物理学者なので、何年もROOTを使用してきました...)は比較的新しいです。ROOTの一般的なプロットは2D散布図です。 、x値とy値のリストを指定すると、1つの変数と他の変数の「ヒートマップ」タイプの散布図が作成されます。
これはどのようにnumpyとPandasで最もよく達成されますか? Dataframe.plot()
関数を使用しようとしていますが、Dataframeを作成するのに苦労しています。
_import numpy as np
import pandas as pd
x = np.random.randn(1,5)
y = np.sin(x)
df = pd.DataFrame(d)
_
まず、このデータフレームには形状(1,2)がありますが、形状(5,2)が必要です。データフレームを正しい形状にできたら、DataFrame.plot()
関数を見つけて必要なものを描画できると確信しています。
DataFrameを作成する方法はいくつかあります。 1次元の列ベクトルを指定すると、キーが列名で値が1次元の列ベクトルである辞書を渡すことで、DataFrameを作成できます。
import numpy as np
import pandas as pd
x = np.random.randn(5)
y = np.sin(x)
df = pd.DataFrame({'x':x, 'y':y})
df.plot('x', 'y', kind='scatter')
補足として、pandasSeries、ただし、DataFrameが作成されている必要があります。
import numpy as np
import pandas as pd
x = np.linspace(0,2*np.pi)
y = np.sin(x)
#df = pd.DataFrame()
#df['X'] = pd.Series(x)
#df['Y'] = pd.Series(y)
# You can MIX
df = pd.DataFrame({'X':x})
df['Y'] = pd.Series(y)
df.plot('X', 'Y', kind='scatter')
これは役立つ別の方法です
import numpy as np
import pandas as pd
x = np.linspace(0,2*np.pi)
y = np.sin(x)
df = pd.DataFrame(data=np.column_stack((x,y)),columns=['X','Y'])
また、 karlijn(DatacCamp) からの例を見つけました
import numpy as np
import pandas as pd
TAB = np.array([['' ,'Col1','Col2'],
['Row1' , 1 , 2 ],
['Row2' , 3 , 4 ],
['Row3' , 5 , 6 ]])
dados = TAB[1:,1:]
linhas = TAB[1:,0]
colunas = TAB[0,1:]
DF = pd.DataFrame(
data=dados,
index=linhas,
columns=colunas
)
print('\nDataFrame:', DF)
あなたが望むことをするために、私はDataFrameのプロットメソッドを使用しません。私は元実験物理学者でもあり、ROOTでの経験に基づいて、Pythonアナログはmatplotlibを使用して最適に達成されると思います。matplotlib.pyplotにはhist2d()というメソッドがあります。 、探しているヒートマップのようなものを提供します。
データフレームを作成するための簡単な方法は次のとおりです。
df=pd.DataFrame({'x':x, 'y':y})