Wie zeichnet man Y-Achse-Titel dynamisch mit Vorlagenansatz in Seeborn FacetGridPython

Python-Programme
Anonymous
 Wie zeichnet man Y-Achse-Titel dynamisch mit Vorlagenansatz in Seeborn FacetGrid

Post by Anonymous »

Ich habe einen Datenrahmen mit einer Spalte mit zwei Arten von Metriken. Ich habe es mit Seeborn.Facetgrid aufgetragen und eine Metrik pro Zeile festgelegt. Mein Ziel ist es, das y-Achse-Etikett für jede Facette um die entsprechende Metrik umzubenennen.

Code: Select all

import pandas as pd
import numpy as np
import seaborn as sns

# Generate random data
categories = [1] * 5 + [2] * 5
n = len(categories) # Number of rows

data = {
"model": np.random.choice(categories, size=n, replace=False),  # 1 = RF, 2 = SVM
"metric": np.random.choice(categories, size=n, replace=False), # 1 = kappa, 2 = accuracy
"predictors": np.random.choice(categories, size=n, replace=False),
"value": np.random.uniform(0.7, 1, size=n)
}

# Convert to DataFrame
df = pd.DataFrame(data)

# Replace numerical categories with text labels
df["model"] = df["model"].map({1: "RF", 2: "SVM"}).astype("category")
df["metric"] = df["metric"].map({1: "kappa", 2: "accuracy"}).astype("category")

g = sns.FacetGrid(df, col="model", row="metric", hue="predictors", palette="tab10")
g.map(sns.barplot, "predictors", "value", legend=True, order=sorted(df['predictors']))
g.set_axis_labels(x_var="Predictors ID")
g.set_titles(template="{row_name}, {col_name}")
g.add_legend()
< /code>
Ich weiß, dass, wie in diesem Beitrag erwähnt, die Beschriftungen durch Zugriff auf Matplotlib-Optionen geändert werden können.for i, model in enumerate(np.sort(pd.unique(df["metric"]))):
g.axes[i,0].set_ylabel(model)
Ich möchte jedoch wissen, ob es eine Methode innerhalb von Seeborns FacetGrid gibt-ähnlich zu set_titles mit dem Vorlagenargument, um die y-axis-Bezeichnungen direkt zu modifizieren.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post