我可以使用DataFrameGroupBy.boxplot(...)以下面的方式來創建一個箱線圖:爲什麼DataFrameGroupBy.boxplot方法在給定參數「subplots = True/False」時拋出錯誤?
In [15]: df = pd.DataFrame({"gene_length":[100,100,100,200,200,200,300,300,300],
...: "gene_id":[1,1,1,2,2,2,3,3,3],
...: "density":[0.4,1.1,1.2,1.9,2.0,2.5,2.2,3.0,3.3],
...: "cohort":["USA","EUR","FIJ","USA","EUR","FIJ","USA","EUR","FIJ"]})
In [17]: df.groupby("cohort").boxplot(column="density",by="gene_id")
In [18]: plt.show()
這正是我想要的,除了不是做三個小區,我希望所有的小區都在一個小區裏(用不同的colo rs爲美國,歐元和FIJ)。我試過
In [17]: df.groupby("cohort").boxplot(column="density",subplots=False,by="gene_id")
但它所產生的誤差
KeyError: 'gene_id'
我認爲這個問題有事情做的事實,by="gene_id"
發送到matplotlib箱線圖方法的關鍵字。如果有人有更好的方式來製作劇情,那麼可能是通過使用DataFrame.boxplot(?)來代替,請在這裏回答。非常感謝!
謝謝你的迴應。這是我製作的玩具數據集的一個很好的解決方案,特別是Seaborn庫。不幸的是,因爲我的數據集有90個基因ID,所以我無法承擔將這些隊列並排的空間。相反,他們需要垂直堆疊在一起。也許Seaborn允許這樣做? – ecneicS
@ecneicS我已經完成了我的回答,請查看 –
太棒了。謝謝! – ecneicS