我想為每個樣本(AD)繪制1000和20步長的滑動視窗中的位置數。
解釋:
1:位置存在;NA: 位置不存在。
我已經在和其他中測驗了十幾種工具bash,R但我正在尋找Python解決方案。
請你的建議。
#This is an example of my data:
window = 1000
step = 20
# Example of dataframe
POSITION A B C D
1250 1 1 1 1
1750 NA 1 NA 1
1786 1 NA 1 1
1812 1 1 1 1
1855 1 1 1 1
1896 1 NA 1 NA
2635 NA 1 1 1
1689 1 1 NA NA
3250 1 1 1 1
3655 1 NA 1 1
3589 NA 1 1 1
我正在尋找這樣的東西:
任何幫助將不勝感激!
uj5u.com熱心網友回復:
我會嘗試使用滾動計數,然后按步驟切片。之后,您可以堆疊 df 以使用 seaborn 線圖的色調引數。
import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame({'POSITION': [1250,
1750,
1786,
1812,
1855,
1896,
2635,
1689,
3250,
3655,
3589],
'A': [1.0, np.nan, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0, np.nan],
'B': [1.0, 1.0, np.nan, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0, np.nan, 1.0],
'C': [1.0, np.nan, 1.0, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0],
'D': [1.0, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, np.nan, 1.0, 1.0, 1.0]})
window = 5
step = 2
df = df.set_index('POSITION').rolling(window).count().reset_index().iloc[::step, :]
df = df.melt(id_vars='POSITION', value_vars=['A','B','C','D'], value_name='polym', var_name='chromop')
sns.lineplot(data=df, x='POSITION',y='polym',hue='chromop')

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336814.html
標籤:Python matplotlib 海生 生物信息学
上一篇:在GUI中創建多個曲面圖
