簡體   English   中英

來自 dataframe 的 seaborn 中的分類直方圖

[英]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')

在 sns.histplot 中將前后列轉換為色調

要使用 x 軸上的樣本 ID 創建條形 plot,您可以將sns.histplot更改為sns.barplot

sns.barplot(data=df_new, x='sample', y='tca', hue='when', palette='copper_r', dodge=True)

列前后的 sns.barplot

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM