【问题标题】:How to produce a grouped bar graph in seaborn using column names as x-axis?如何使用列名作为 x 轴在 seaborn 中生成分组条形图?
【发布时间】:2021-05-27 05:34:51
【问题描述】:

当我得到答案时,我会踢自己,但是我特别坚持如何塑造我的数据框,以便我可以使用 seaborn 的分组条形图功能。 具体来说,我会像除标签之外的所有列一样成为 x 轴上的特征,并且标签列用于标识每个特征中的分组。设置hue="Label" 只允许我选择一列进行分析。我也尝试将标签列设置为索引,但仍然坚持如何在同一个图表上绘制所有列。

import pandas as pd
x={'COL1A1': {0: 0.2833579201349264, 1: 0.2322427823226963, 2: 0.2234481446366325, 3: 0.1713271996532782, 4: 0.1706736234267313, 5: 0.2168315586062242, 6: 0.386938532513836, 7: 0.167685047602447, 8: 0.1977671674206828}, 'COL1A2': {0: 0.222790260323129, 1: 0.1166248272594191, 2: 0.1213743347438685, 3: 0.07539620593306488, 4: 0.08646408377942773, 5: 0.108099072823806, 6: 0.2253577413174345, 7: 0.07159756158725838, 8: 0.1270212586927018}, 'COL2A1': {0: 0.1177084047971632, 1: 0.03015204272416201, 2: 0.004641911872949625, 3: 0.01252004151673348, 4: 0.004759507378467226, 5: 0.003771667678394546, 6: 0.002448538354908414, 7: 0.001632213095114248, 8: 0.002689169456628402}, 'COL3A1': {0: 0.07704183889927835, 1: 0.05669627792749389, 2: 0.06795005563919726, 3: 0.06820333109906228, 4: 0.06203084779960908, 5: 0.07143978702722126, 6: 0.1075883977017228, 7: 0.02325396568594267, 8: 0.04019275033210956}, 'COL4A1': {0: 0.0006352541367984844, 1: 0.0003530402330976581, 2: 0.0002599951224169368, 3: 0.001068552848567594, 4: 0.0004283762535061793, 5: 0.0001828315856020066, 6: 0.0007922674417145188, 7: 0.00121122295479909, 8: 0.001242371369354}, 'ELN': {0: 0.009590516917155572, 1: 0.01128331824126868, 2: 0.001767761425242979, 3: 0.001335871032556882, 4: 0.0006832478350178915, 5: 6.156058814047895e-05, 6: 4.641718558203665e-05, 7: 0.0007894520340958474, 8: 0.0}, 'FN1': {0: 0.2916957262974497, 1: 0.2991922242655564, 2: 0.2604020611939179, 3: 0.3750793271445748, 4: 0.3947768543681868, 5: 0.3544762810478779, 6: 0.2691587576010813, 7: 0.1879022759492052, 8: 0.2388673352144315}, 'Label': {0: 'DAT', 1: 'DAT', 2: 'DAT', 3: 'DCT', 4: 'DCT', 5: 'DCT', 6: 'TCP', 7: 'TCP', 8: 'TCP'}}    
df=pd.DataFrame(x)

任何帮助将不胜感激。

数据图像:

【问题讨论】:

  • 你好。请不要将数据/代码/错误消息作为图像发布。将文本直接发布在 SO 上。另见:stackoverflow.com/questions/20109391/…
  • 我的错,现在改变它。我忘了
  • You mean like this? 我建议也阅读有关long vs wide format seaborn 中的情节。
  • 是的,这可能只是一天的结束,但我不能用熔化来解决问题。我会仔细研究一下,谢谢你的第二次。
  • 是的,我只是过度劳累和筋疲力尽。我想通了……我想。当我解决它时,我会发布我的代码作为答案。再次感谢!

标签: python dataframe seaborn


【解决方案1】:
ECMxx=pd.read_excel('ECMx.xlsx', sheet_name='Sheet2')
data = ECMxx.melt('Label', var_name='ECM', value_name='Intensity/Total Intensity')
fig = plt.figure(figsize=(10,10))
sns.set(font_scale = 1.2)
sns.set_style("white")
ax=sns.barplot(y='ECM', x='Intensity/Total Intensity', hue='Label', data=data)

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2015-06-09
    • 2022-01-24
    相关资源
    最近更新 更多