Seaborn Barplot добавить xticks для оттенка - PullRequest
1 голос
/ 07 октября 2019

В морских графиках Seaborn есть xtick для каждого уникального значения по координате x. Но для значений оттенков нет тиков:

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 Ответ

2 голосов
/ 07 октября 2019

Вы должны быть осторожны с количеством оттенков, которые могут иметься в вашем наборе данных, а также с количеством категорий и так далее. Если у вас есть 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

Обратите внимание, что я настоятельно рекомендую использовать order= и hue_order= при вызове barplot(), чтобы убедиться, что ваши метки соответствуют полосам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...