Je suis en train de tracer un tracé polaire en utilisant facetGrid de Seaborn, semblable à ce qui est détaillé sur seaborn's gallery J'utilise le code suivant:Comment modifier les positions des titres de sous-placettes et des étiquettes d'axe dans Seaborn FacetGrid?
sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1.25)
# Set up a grid of axes with a polar projection
g = sns.FacetGrid(df_total, col="Construct", hue="Run", col_wrap=5, subplot_kws=dict(projection='polar'), size=5, sharex=False, sharey=False, despine=False)
# Draw a scatterplot onto each axes in the grid
g.map(plt.plot, 'Rad', ''y axis label', marker=".", ms=3, ls='None').set_titles("{col_name}")
plt.savefig('./image.pdf')
qui, avec mes données donne les éléments suivants:
Je veux garder cette organisation de 5 parcelles par ligne.
Le problème est que le titre de chaque sous-placette chevauche les valeurs des graduations, idem pour l'étiquette de l'axe y.
Y at-il un moyen d'empêcher ce comportement? Puis-je d'une manière ou d'une autre décaler les titres légèrement au-dessus de leur position actuelle et puis-je déplacer légèrement les étiquettes d'axe y à gauche de leur position actuelle?
Merci beaucoup d'avance!
EDIT: Ce n'est pas une copie de ce SO que le problème était que le titre d'une intrigue secondaire chevauché avec l'étiquette d'axe de une autre intrigue secondaire.
Voici mon problème est que le titre d'une intrigue secondaire chevauche avec l'étiquette de tiques la même intrigue secondaire et de même l'étiquette de l'axe chevauche avec l'étiquette de tiques la même intrigue secondaire.
Je voudrais aussi ajouter que je ne me soucie pas qu'ils se chevauchent sur mon ordinateur portable jupyter (comme comme été créé avec elle), mais je veux l'image enregistrée finale sans chevauchement, donc peut-être il y a quelque chose Je dois faire pour enregistrer l'image dans un format légèrement différent pour éviter cela, mais je ne sais pas quoi (je n'utilise que plt.savefig
pour l'enregistrer).
EDIT 2: Si quelqu'un voudrait reproduire le problème ici est un exemple minimal:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
sns.set()
sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1.5)
# Generate an example radial datast
r = np.linspace(0, 10000, num=100)
df = pd.DataFrame({'label': r, 'slow': r, 'medium-slow': 1 * r, 'medium': 2 * r, 'medium-fast': 3 * r, 'fast': 4 * r})
# Convert the dataframe to long-form or "tidy" format
df = pd.melt(df, id_vars=['label'], var_name='speed', value_name='theta')
# Set up a grid of axes with a polar projection
g = sns.FacetGrid(df, col="speed", hue="speed",
subplot_kws=dict(projection='polar'), size=4.5, col_wrap=5,
sharex=False, sharey=False, despine=False)
# Draw a scatterplot onto each axes in the grid
g.map(plt.scatter, "theta", "label")
plt.savefig('./image.png')
plt.show()
Ce qui donne l'image suivante dans laquelle les titres ne sont pas aussi mauvais que dans mon problème d'origine (mais encore un peu de chevauchement) et l'étiquette sur le côté gauche se chevauchent complètement.
Pouvez-vous poster un [mcve] du problème? – ImportanceOfBeingErnest
Juste modifié la question pour ajouter un exemple. Merci. – ejl62