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.
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.>
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]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
# 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) [/code] 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.>
In Histogrammen, die mit Seeborn aufgetragen sind, überlappen sich die Balken, wenn die Verwendung von Hue sich überlappen, die Farben, die häufig nicht zu unterscheiden sind. Das macht es schwierig,...
Mein Code funktioniert bis zu einem gewissen Punkt und dann dreht er sich an einer Stelle spiralförmig. Ich habe versucht, es zu debuggen, aber es hilft nicht.
Aktuelle Ausgabe:
Geben Sie hier die...
Gibt es eine Möglichkeit, auf einem HTML5-Canvas nicht über Javascript auf der Canvas-Seite, sondern vom Server aus zu zeichnen, d. h. ich hätte gerne einen C++- (oder Java-)Server, der mir auch ein...
Gibt es eine Möglichkeit, auf einem HTML5-Canvas nicht über Javascript auf der Canvas-Seite, sondern vom Server aus zu zeichnen, d. h. ich hätte gerne einen C++- (oder Java-)Server, der mir auch ein...
Gibt es eine Möglichkeit, auf einem HTML5-Canvas nicht über Javascript auf der Canvas-Seite, sondern vom Server aus zu zeichnen, d. h. ich hätte gerne einen C++- (oder Java-)Server, der mir auch ein...