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")


python - seaborn barplot添加xticks作为色相-LMLPHP

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

最佳答案

您必须注意数据集中的色调数量以及类别数量等。
如果您有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'])


python - seaborn barplot添加xticks作为色相-LMLPHP

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

关于python - seaborn barplot添加xticks作为色相,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58267394/

10-09 22:33