Ich würde nicht wissen, was ind
ist entweder. Aber wenn das Ziel, die Punkte mit ihren Koordinaten zu annotieren, können Sie ax.annotate
in einer Funktion verwenden, das die FacetGrid
abgebildet wird, wie folgt:
import matplotlib.pyplot as plt
import seaborn as sns
attend = sns.load_dataset("attention")
sns.set_style("whitegrid", {'axes.grid' : False,'axes.edgecolor':'none'})
g = sns.FacetGrid(attend, col="subject", col_wrap=5,
size=1.5, ylim=(0, 10))
def f(x,y, **kwargs):
ax = sns.pointplot(x,y,**kwargs)
ax.axhline(5, alpha=0.5, color='grey')
for i in range(len(x)):
ax.annotate(str(y.values[i]), xy=(x.values[i]-1, y.values[i]),fontsize=8,
xytext = (0,10), textcoords="offset points",
color=kwargs.get("color","k"),
bbox=dict(pad=.9,alpha=0.2, fc='limegreen',color='none'),
va='center', ha='center',weight='bold')
g.map(f, "solutions", "score", scale=.7)
plt.show()
Möglicherweise müssen Sie xy=(i, y.values[i])
in der verwenden Annotation, abhängig davon, wie die Daten aussehen.
Beachten Sie, dass dies auch your previous question beantwortet, indem Sie die axhline
in diese Funktion einfügen.
Wenn das Ziel darin besteht, die Punkte durch die Anmerkungen zu ersetzen, verwenden Sie xytext = (0,0)
oder lassen Sie dieses Argument vollständig aus; dann hält auch bbox=dict(pad=.9,alpha=1, fc='w',color='none')
und markers=""
im Funktionsaufruf verwenden:
import matplotlib.pyplot as plt
import seaborn as sns
attend = sns.load_dataset("attention")
sns.set_style("whitegrid", {'axes.grid' : False,'axes.edgecolor':'none'})
g = sns.FacetGrid(attend, col="subject", col_wrap=5,
size=1.5, ylim=(0, 10))
def f(x,y, **kwargs):
ax = sns.pointplot(x,y,**kwargs)
ax.axhline(5, alpha=0.5, color='grey')
for i in range(len(x)):
ax.annotate(str(y.values[i]), xy=(i, y.values[i]),fontsize=8,
color=kwargs.get("color","k"),
bbox=dict(pad=.9,alpha=1, fc='w',color='none'),
va='center', ha='center',weight='bold')
g.map(f, "solutions", "score", scale=.7, markers="")
plt.show()
Vielen Dank. Ich nehme an, dass ich mit xy = (i, y.values [i]) in der Anmerkung die Punkte durch die tatsächlichen Werte ersetzen kann, solange ich eine Box darum habe. –
Ich habe dich vielleicht missverstanden. Die aktualisierte Antwort kann dann mehr sein, was Sie wollen. – ImportanceOfBeingErnest
Unglaublich bearbeiten! Ich bin gerade in Ehrfurcht. –