Sto creando un grafico molto ampio che, quando viene emesso come file PNG, occupa diversi migliaia di pixel nell'asse x; ci sono circa 20 anni di dati giornalieri. (Questo può o non può essere considerato una buona pratica, ma è per il mio uso personale, non per la pubblicazione.) Poiché il grafico è così ampio, l'asse y scompare dalla vista mentre scorri il grafico. Di conseguenza, voglio aggiungere etichette alla trama a intervalli di 2 anni per mostrare i valori sull'asse delle ordinate. Il grafico risultante è come quella qui sotto, salvo che nell'interesse di mantenerlo compatto ho usato solo 30 giorni di dati falsi e mettere etichette circa ogni 10 ° giorno:R: In ggplot, come aggiungere più etichette di testo sull'asse y per ognuna delle diverse date sull'asse x
questo funziona più o meno come richiesto, ma mi chiedo se ci sia un modo migliore di affrontarlo come in questo grafico (vedi il codice sotto) Ho una colonna per ciascuno dei 3 valori dell'asse y di 120, 140 e 160. I dati reali hanno molti più livelli , quindi finirei con 15 chiamate a geom_text per mettere tutto nell'area del tracciato.
D. C'è un modo più semplice per eseguire lo splat su tutte le 20 date dispari, con 15 etichette per data, sul grafico in una sola volta?
require(ggplot2)
set.seed(12345)
mydf <- data.frame(mydate = seq(as.Date('2012-01-01'), as.Date('2012-01-31'), by = 'day'),
price = runif(31, min = 100, max = 200))
mytext <- data.frame(mydate = as.Date(c('2012-01-10', '2012-01-20')),
col1 = c(120, 120), col2 = c(140,140), col3 = c(160,160))
p <- ggplot(data = mydf) +
geom_line(aes(x = mydf$mydate, y = mydf$price), colour = 'red', size = 0.8) +
geom_text(data = mytext, aes(x = mydate, y = col1, label = col1), size = 4) +
geom_text(data = mytext, aes(x = mydate, y = col2, label = col2), size = 4) +
geom_text(data = mytext, aes(x = mydate, y = col3, label = col3), size = 4)
print(p)
funziona perfettamente, grazie. Deve sciogliersi più spesso! – SlowLearner