Obecnie próbuję użyć Seaborn do tworzenia działek dla moich prac naukowych. Wykresy wyglądają świetnie i są łatwe do wygenerowania, ale jednym z problemów, z którymi mam problem, jest precyzyjna kontrola rozmiaru czcionki na wykresach.Dobra kontrola rozmiaru czcionki w działkach Seaborn dla papierów akademickich
Mój rozmiar czcionki w moim referacie to 9pt i chciałbym się upewnić, że rozmiar czcionki na moich działkach wynosi 9pt lub 10pt. Ale u seabornów rozmiar czcionki jest kontrolowany głównie za pomocą skali czcionki sns.set_context("paper", font_scale=0.9)
. Tak więc trudno mi znaleźć odpowiedni rozmiar czcionki, z wyjątkiem prób i błędów. Czy istnieje skuteczniejszy sposób na zrobienie tego?
Chcę również upewnić się, że rozmiar czcionki jest zgodny między różnymi polami seaborn. Ale nie wszystkie moje seabornowe działki mają ten sam wymiar, więc wydaje się, że użycie tego samego font_scalena wszystkich działkach niekoniecznie powoduje utworzenie tego samego rozmiaru czcionki na tych różnych działkach?
Załączam mój kod poniżej. Doceniam wszelkie uwagi na temat formatowania fabuły dla dwu-kolumnowej pracy naukowej. Moim celem jest móc kontrolować rozmiar figury bez zniekształcania rozmiaru czcionki lub wykresu. Używam Latex do napisania mojej pracy.
# Seaborn setting
sns.set(style='whitegrid', rc={"grid.linewidth": 0.1})
sns.set_context("paper", font_scale=0.9)
plt.figure(figsize=(3.1, 3)) # Two column paper. Each column is about 3.15 inch wide.
color = sns.color_palette("Set2", 6)
# Create a box plot for my data
splot = sns.boxplot(data=df, palette=color, whis=np.inf,
width=0.5, linewidth = 0.7)
# Labels and clean up on the plot
splot.set_ylabel('Normalized WS')
plt.xticks(rotation=90)
plt.tight_layout()
splot.yaxis.grid(True, clip_on=False)
sns.despine(left=True, bottom=True)
plt.savefig('test.pdf', bbox_inches='tight')
Nie jestem do końca pewien, jakie jest twoje pytanie.Możesz podać rozmiary czcionek dla różnych parametrów rc związanych z czcionkami, aby zmienić ustawienia domyślne, i możesz przekazać fontsize do dowolnej funkcji kreślenia w celu określenia czcionek dla elementów, które tworzy. "font_scale" nie jest jedynym sposobem, aby to zrobić, to po prostu wygodny sposób na zmianę wielu rzeczy naraz. – mwaskom
Nie odpowiadając na to pytanie, ale być może odnosząc się do zasadniczej zmiany podejścia: Spójrz na pakiet ['psfrag'] (https://www.ctan.org/pkg/psfrag?lang=en). Pozwala na zastąpienie znaków na rysunku za pomocą ciągów. – Schorsch
@mwaskom Odpowiedziałeś na moje pytanie - określ rozmiar czcionki za pomocą rc. Ale jedną z rzeczy, które moim zdaniem byłoby miło mieć u seabornów, jest możliwość określenia font_size, która zostanie zastosowana globalnie do wszystkich właściwości czcionki. Ponieważ używając rc, muszę indywidualnie ustawić każdy parametr czcionki (np. Axes.labelsize, legend.fontsize). – kc2uno