[英]Categorical histograms in seaborn from a dataframe
考慮我有以下 dataframe:
樣本 | tca_after | avg_length_after | cd_after | tca_before | avg_length_before | cd_before |
---|---|---|---|---|---|---|
1 | 0.015385 | 50.513499 | 1.4 | 0.005139 | 31.844415 | 0.4 |
2 | 0.005040 | 19.209373 | 1.0 | 0.004603 | 20.831459 | 0.6 |
3 | 0.057218 | 31.869649 | 10.0 | 0.008687 | 17.926937 | 1.0 |
4 | 0.037175 | 45.543659 | 3.8 | 0.035760 | 56.937708 | 2.8 |
我想在某個過程之前和之后比較 TCA、avg_length 和 CD。 所以我想使用seaborn 創建三個分類直方圖。 在 x 軸上我有所有四個樣本,在 y 軸上我有前后的 TCA、avg_length 或 CD。 我不知道該怎么做:(
能否請你幫忙?
您可以將之前和之后的列連接在一起,並添加一個新列,例如“何時”來指示之前和之后。 然后可以將該新列用作“色調”。
以下是創建直方圖的方法:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
df = pd.read_html('https://stackoverflow.com/questions/73348014')[0]
df_before = df[['sample', 'tca_before', 'avg_length_before', 'cd_before']]
df_before = df_before.rename(columns={'tca_before': 'tca', 'avg_length_before': 'avg_length', 'cd_before': 'cd'})
df_before['when'] = 'before'
df_after = df[['sample', 'tca_after', 'avg_length_after', 'cd_after']]
df_after = df_after.rename(columns={'tca_after': 'tca', 'avg_length_after': 'avg_length', 'cd_after': 'cd'})
df_after['when'] = 'after'
df_new = pd.concat([df_before, df_after]).reset_index()
sns.histplot(data=df_new, x='tca', hue='when', palette='copper_r', multiple='dodge')
要使用 x 軸上的樣本 ID 創建條形 plot,您可以將sns.histplot
更改為sns.barplot
:
sns.barplot(data=df_new, x='sample', y='tca', hue='when', palette='copper_r', dodge=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.