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")
是否也可以为色相添加刻度? 一些色调颜色非常相似,我也想添加一个文字说明。
答案 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'])
请注意,我强烈建议您在调用barplot()
时使用order=
and hue_order=
,以确保标签与条形匹配。