2015-06-28 20 views
5

Ho una lunga descrizione per la mia trama. E ho anche bisogno di mettere altre informazioni sotto la trama.R trama - come aggiungere note e descrizione alla trama?

Ma non riesco a capire come posso farlo. Questo è quello che ho finora,

plot(1:10) 
title(
    main = "Foo", 
    sub = 'Description \n Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. ', 
    font.sub = 1, 
    font.main = 1 
) 

risultato non è buono come la descrizione è troppo lunga ed è stato tagliato, anche la descrizione parola si sovrappone con la xlable,

enter image description here

Come posso inserire la descrizione sotto il grafico?

Questo è quello che sono dopo,

enter image description here

  • un info aggiuntiva - periodo di tempo.
  • avvolgere la descrizione in una casella grigia.
  • regolare il testo a sinistra.

Sono questi possibili?

+6

Check 'textbox' o? '? addtable2plot' da' library (plotrix) ' – akrun

+1

Puoi anche usare' layout' un 'plot' vuoto e poi' rect' e 'text' ma probabilmente dovresti determinare le interruzioni di linea (manualmente o in codice). Hai etichettato questa app come app lucida - sicuramente il modo migliore sarebbe avere il testo come testo in un oggetto separato sotto la trama? –

+0

Sì, posso usare lucido per posizionare il testo come testo html ma ho bisogno che il testo faccia parte dell'immagine/della trama in modo da poter scaricare il testo con l'immagine. – laukok

risposta

5

Solo una piccola lezione sulla tipografia: l'argomento sub della funzione consente di inserire un sottotitolo. A lui onesti tali elementi non sono usati molto spesso. Quello che stai cercando di ottenere è mettere una didascalia (che è un elemento molto diverso). Le convenzioni tipografiche dicono che le didascalie sono poste sotto i grafici per grafici e immagini e sopra le tabelle. Se usi un sistema di preparazione come LaTeX o un word processor ti consiglio di non mettere una didascalia "dentro" la trama (diciamo, come parte della trama stessa) usando le funzioni R ma semplicemente di mettere la tua trama semplice senza didascalie nel tuo documento e poi metti didascalie usando gli strumenti disponibili per i tuoi editor (parola ecc. o LaTeX o Knitr o anche PowerPoint, ecc.).

In ogni caso, la mia piccola e noiosa lezione sulla tipografia non risolve il problema. Qui fornisco una soluzione con la funzione layout della base R e la funzione textplot del pacchetto gplots ma come sempre scommetto che esiste un modo più efficiente ed elegante per raggiungere lo stesso obiettivo.

library(gplots) 
tex <- "Description Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \nAenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque \npenatibus et magnis dis parturient montes, ascetur ridiculus mus." 
layout(matrix(c(2,1)), 0.5, 2) 
par(mar=c(1,1,1,1)) 
textplot(tex, halign = "center") 
par(mar=c(1,1,1,1)) 
plot(1:10) 
title(main = "Foo", font.main = 1) 

solo tornare a cose noiose: questo modo di fare è molto difficile e inefficiente dal mio punto di vista in modo vi consiglio di utilizzare altri strumenti come ho detto in precedenza.

Ultimo ma non meno importante, credo che la sintassi giusta per le interruzioni di linea è \nword to break e non \n word to break

Ecco come l'aspetto risultato:

enter image description here