Rが使用しているデータのサイズに苦労していたため、私は現在、多くの作業を行ったり来R
たりggplot2
する過程にseaborn
あります。私は現在、かなり単純化されたヒートマップに取り組んでおり、あまり多くの問題なしに一般的なヒートマップをレンダリングすることができましたが、ヒートマップのカテゴリの順序を調整する方法がわかりません。
この場合、私のデータには次のヘッダーがあります。
Sample Position Depth Order
サンプルは「y軸」カテゴリであり、位置は「x軸」カテゴリです。深さはセルの値です。Orderは他の場所で計算されたメタ値ですが、サンプルをラベルとして保持しながら、Orderをy軸の順序値として使用したいと思います。これを行う方法はありますか?
sns.heatmapには長方形の形式または行列を指定する必要があるため、Order
順序付け用の列はありますが、Sample
各'Order'
カテゴリに一意の値があるかどうかは明確ではありません。
以下では簡単な例を使用します。基本的には、「Order」の平均値に従って、「Sample」をカテゴリに変更します。これは、Rの係数レベルを変更するようなものです。また、NaNがないことを確認する必要があります。そうしないと、ヒートマップに文句が表示される可能性があります。
df = pd.DataFrame({'Sample':np.repeat(['A','B','C'],4),
'Position':[1,2,3,4]*3,
'Depth':np.random.normal(0,1,12),
'Order':np.repeat([2,1,3],4)})
y_order = df.groupby('Sample')['Order'].agg('mean').sort_values().index
df['Sample'] = pd.Categorical(df['Sample'],ordered=True,categories=y_order)
sns.heatmap(df.pivot(index='Sample',columns='Position', values='Depth'))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加