python – Seaborn FacetGrid条形图和色调

前端之家收集整理的这篇文章主要介绍了python – Seaborn FacetGrid条形图和色调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有以下结构的DataFrame:
  1. interval segment variable value
  2. 4 02:00:00 Night weekdays 154.866667
  3. 5 02:30:00 Night weekdays 100.666667
  4. 6 03:00:00 Night weekdays 75.400000
  5. 7 03:30:00 Night weekdays 56.533333
  6. 8 04:00:00 Night weekdays 55.000000
  7. 9 04:30:00 Night weekends 53.733333
  8. 10 05:00:00 Night weekends 81.200000
  9. 11 05:30:00 Night weekends 125.933333
  10. 14 07:00:00 Morning weekdays 447.200000
  11. 15 07:30:00 Morning weekends 545.200000
  12. 16 08:00:00 Morning weekends 668.733333
  13. 17 08:30:00 Morning weekends 751.333333
  14. 18 09:00:00 Morning weekdays 793.800000
  15. 19 09:30:00 Morning weekdays 781.125000
  16. 23 11:30:00 Noon weekdays 776.375000
  17. 24 12:00:00 Noon weekdays 741.812500
  18. 25 12:30:00 Noon weekends 723.000000
  19. 26 13:00:00 Noon weekends 734.562500
  20. 27 13:30:00 Noon weekends 763.882353
  21. 28 14:00:00 Afternoon weekdays 810.411765
  22. 31 15:30:00 Afternoon weekdays 855.411765
  23. 32 16:00:00 Afternoon weekdays 824.882353
  24. 33 16:30:00 Afternoon weekends 768.529412
  25. 34 17:00:00 Afternoon weekends 790.812500
  26. 35 17:30:00 Afternoon weekends 809.125000

我想生成一个条形图条形图,每个变量一个(工作日/周末),然后根据“段”列为条形图着色.

制作两个条形图非常简单:

  1. g = sns.FacetGrid(melted,col="variable")
  2. g.map(sns.barplot,'interval','value')

这会产生(我知道xlabels是错的,我可以纠正):

我根据“段”坚持着色吧.根据文档,我需要做的就是在实例化FacetGrid时添加变量并设置一些调色板:

  1. g = sns.FacetGrid(melted,col="variable",hue="segment",palette="Set3")
  2. g.map(sns.barplot,'value')

但这会产生:

这些条彼此堆叠而不是遍布整个区间.我在这里错过了什么?

我用数据集创建了一个gist.

解决方法

因为interval嵌套在x变量(segment)中,所以你需要告诉barplot关于x变量的所有可能级别,以便它们不会相互叠加:
  1. times = df.interval.unique()
  2. g = sns.FacetGrid(df,row="variable",palette="Set3",size=4,aspect=2)
  3. g.map(sns.barplot,'value',order=times)

猜你在找的Python相关文章