我想要一个熊猫数据帧的catplot,它包含一年中所有小时的数值。它有3列:小时、工作日和值。我的情节是这样的:
cat_weekdayhour = plt.figure(figsize=(12,12))
cat_weekdayhour = sns.set_context("paper")
cat_weekdayhour = sns.set(style="darkgrid", font_scale=.6)
weekdayhour.shape
cat_weekdayhour = sns.catplot(x="Weekday", y="Value", hue="Hour", kind="swarm", palette="coolwarm", data=dataframe)
这给了我下面的catplot,但是我不喜欢一天的凌晨(比如凌晨0点到4点)是蓝色的,而最后几个小时(晚上8点到11点)是红色的。相反,我想把红色的颜色集中到白天的时间然后让整个晚上的时间都是蓝色的。这能做到吗?谢谢您。在
您正在使用dataframe中的
Hour
列作为着色源。相反,可以引入一个新列,其中包含从小时到12:00的值:所以12:00会变成0,24:00会变成-12。6: 00和18:00将变成-6。 这样,一天的中间部分将由最高值(红色→0)表示,而午夜将由最低值(蓝色→-12)表示。在
一个想法是创建一个新的colormap,我们称之为
"cycliccoolwarm"
,它包含原始colormap和它的反向版本。然后使用这个新的颜色贴图和任何其他现有的颜色贴图一样简单。在创建你自己的托盘结合“酷热”与它的反向托盘。我有一个旧版本的
seaborn
,所以我将使用swarmplot来说明样本数据
coolwarm调色板
^{pr2}$自定义调色板
相关问题 更多 >
编程相关推荐