seaborn barplot添加xticks作为色相

时间:2019-10-07 10:07:14

标签: python python-3.x matplotlib seaborn

Seaborn条形图针对x坐标上的每个唯一值都有一个xtick。但是对于色相值,没有刻度:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame(columns=["model", "time", "value"])
df["model"] = ["on"]*2 + ["off"]*2
df["time"] = ["short", "long"] * 2
df["value"] = [1, 10, 2, 4]

fig, ax = plt.subplots()
bar = sns.barplot(data=df, x="model", hue="time", y="value", edgecolor="white")

barplots

是否也可以为色相添加刻度? 一些色调颜色非常相似,我也想添加一个文字说明。

1 个答案:

答案 0 :(得分:2)

您必须注意数据集中的色调数量以及类别数量等。 如果您有N个类别,则将它们分别绘制在轴坐标0,1,...,N-1处。然后以该坐标为中心绘制各种色调。对于您示例中的2种色调,条形图为x±0.2

fig, ax = plt.subplots()
bar = sns.barplot(data=df, x="model", hue="time", y="value", edgecolor="white")
ax.set_xticks([-0.2,0.2, 0.8,1.2])
ax.set_xticklabels(["on/short","on/long",'off/short','off/long'])

enter image description here

请注意,我强烈建议您在调用barplot()时使用order= and hue_order=,以确保标签与条形匹配。