加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Seaborn FacetGrid条形图和色调

发布时间:2020-12-16 22:55:50 所属栏目:Python 来源:网络整理
导读:我有一个具有以下结构的DataFrame: interval segment variable value4 02:00:00 Night weekdays 154.8666675 02:30:00 Night weekdays 100.6666676 03:00:00 Night weekdays 75.4000007 03:30:00 Night weekdays 56.5333338 04:00:00 Night weekdays 55.000
我有一个具有以下结构的DataFrame:
interval    segment  variable        value
4   02:00:00      Night  weekdays   154.866667
5   02:30:00      Night  weekdays   100.666667
6   03:00:00      Night  weekdays    75.400000
7   03:30:00      Night  weekdays    56.533333
8   04:00:00      Night  weekdays    55.000000
9   04:30:00      Night  weekends    53.733333
10  05:00:00      Night  weekends    81.200000
11  05:30:00      Night  weekends   125.933333
14  07:00:00    Morning  weekdays   447.200000
15  07:30:00    Morning  weekends   545.200000
16  08:00:00    Morning  weekends   668.733333
17  08:30:00    Morning  weekends   751.333333
18  09:00:00    Morning  weekdays   793.800000
19  09:30:00    Morning  weekdays   781.125000
23  11:30:00       Noon  weekdays   776.375000
24  12:00:00       Noon  weekdays   741.812500
25  12:30:00       Noon  weekends   723.000000
26  13:00:00       Noon  weekends   734.562500
27  13:30:00       Noon  weekends   763.882353
28  14:00:00  Afternoon  weekdays   810.411765
31  15:30:00  Afternoon  weekdays   855.411765
32  16:00:00  Afternoon  weekdays   824.882353
33  16:30:00  Afternoon  weekends   768.529412
34  17:00:00  Afternoon  weekends   790.812500
35  17:30:00  Afternoon  weekends   809.125000

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

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

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

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

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

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

但这会产生:

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读