Questo è come sono stato in grado di spostare la legenda in un determinato luogo all'interno della trama e cambiare l'aspetto e dimensioni del terreno:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend=False)
viol_plot.ax.legend(loc=2)
viol_plot.fig.savefig(figure_output_path)
Questo ha funzionato per me di cambiare le dimensioni e aspetto della trama e spostare la legenda al di fuori dell'area del tracciato.
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set(style="ticks")
figure_name = 'rater_violinplot.png'
figure_output_path = output_path + figure_name
viol_plot = sns.factorplot(x="Rater",
y="Confidence",
hue="Event Type",
data=combo_df,
palette="colorblind",
kind='violin',
size = 10,
aspect = 1.5,
legend_out=True)
viol_plot.fig.savefig(figure_output_path)
ho capito questo dalla risposta di mwaskom here e la risposta di Fernando Hernandez here.
Ha funzionato, grazie! Piccola domanda: come fa il "plt" globale a sapere in quale cifra aggiungere la legenda? Ho molte figure aperte allo stesso tempo. – user124114
'plt' agisce sugli assi correnti. Per ottenere gli assi da un 'FacetGrid' usa la fig. Ad esempio: 'g.fig.get_axes() [0] .legend (loc = 'in basso a sinistra')' – Jules