Sembra che la creazione di grafica di qualità di pubblicazione con mma sia un'arte nera che risale a decenni. Sebbene le cose siano migliorate molto negli ultimi anni, è ancora difficile ottenere risultati coerenti durante l'esportazione in file. Il modo in cui sembra il risultato finale sembra in qualche modo dipendente dal formato (con EPS che funziona meglio nella mia esperienza).Esportazione di grafici per pubblicazioni: come ottenere spessori di linea coerenti negli elementi di stampa?
Molto spesso, le linee in cornici e segni di graduazione finiscono per essere troppo deboli nel file EPS, e quando si cerca di fare qualcosa come FrameStyle->AbsoluteThickness[2]
, è facile ottenere linee troppo spesse. Quindi, il mio approccio attuale prevede di prendere cinque parametri - tre spessori di linea (in FrameStyle, AxesStyle e PlotStyle), ImageSize e FontSize in BaseStyle - e modificarli casualmente fino a quando la trama esportata non sembra accettabile. Questo è in qualche modo insoddisfacente e richiede tempo.
Esiste un modo migliore e/o una prescrizione standard da seguire per ottenere trame equilibrate e di bell'aspetto?
Modifica: ecco un esempio. Sembra buono sullo schermo (vedi screenshot), ma esportalo in EPS e probabilmente vedrai due cose: (a) C'è un bug con l'incorporamento di font EPS: per me, l'epsilon all'interno della figura non incorpora correttamente a meno che non rimuovo la direttiva FontWeight->Normal
. (b) Le linee frame/tick sono di colore grigio chiaro e 1 pixel di spessore. Se volessi ridurre questa cifra (ad esempio per posizionarla come inserto), la qualità verrebbe compromessa. Tuttavia, l'utilizzo di AbsoluteThickness[2]
non funziona correttamente, quindi devo aumentare ImageSize
. Ma poi i caratteri sono troppo piccoli e/o le linee nella trama sembrano troppo sottile, ecc, ecc
With[{exSubscript = "\[UpTee]", epsFontSize = 24,
xcoords = {0.63, 2.2}}, testInset = Style[Inset[Cell[TextData[Cell[
BoxData[FormBox[SubscriptBox["\[Epsilon]", exSubscript],
TraditionalForm]]]]], xcoords, {Left, Baseline}],
FontWeight -> Normal, FontSize -> epsFontSize];
];
Show[Plot[10 x^2, {x, 0, 1}, PlotStyle -> Thick, Frame -> True,
PlotRange -> {-2, 8}, Epilog -> {testInset}], Axes -> {True, True},
AxesOrigin -> {0, 0}, AxesStyle -> Dashed,
FrameLabel -> {"\[Lambda] [\[Mu]m]", "Re{\[Epsilon]}"},
BaseStyle -> {FontSize -> 22, FontWeight -> Plain,
FontFamily -> Helvetica}, ImageSize -> 500]
Export["test.eps", %]
Edit: Accettare risposta Szabolcs', ma Mr.Wizard dovrebbe essere dato credito per sottolineando il comportamento FontFamily -> Helvetica
vs FontFamily -> "Helvetica"
(che sembra un bug). Senza le virgolette, l'esportazione PDF è un non-starter a causa di font avvitati.
@Leo: Sono d'accordo con rcollyer. Ho usato LS per i miei numeri di pubblicazione e escono sempre alla grande. Puoi consultare [alcuni] (http://stackoverflow.com/questions/5818888/how-to-make-a-grid-of-plots-with-a-single-pair-of-framelabels/5820813#5820813) [risposte] (http://stackoverflow.com/questions/5429204/is-there-an-equivalent-of-matlabs-subplot/5429802#5429802) qui che uso levelscheme, per avere un'idea di come appaiono i grafici. – abcd
Interessante (e frustrante) che se esporto in PDF, i caratteri cambiano, ma se stampo il notebook su una stampante PDF, sembra giusto. –
Se utilizzo 'FontFamily ->" Helvetica "' (le virgolette sono importanti) funziona. –