Вы можете подавить оси по умолчанию с помощью axes=FALSE
и добавить их вручную, вызвав axis.Date
.
# Sample data
library(quantmod)
getSymbols( "^DJI" )
x <- DJI
# Plot without the date axis
matplot(
index(x), coredata(Ad(x)),
axes=FALSE,
xlab="", ylab="",
type="l", lwd=3
)
axis(2, las=1)
# Some date arithmetics
all_days <- seq.Date( from=min(index(x)), to=max(index(x)), by=1 )
months <- all_days[ format(all_days, "%d") == "01" ]
january <- all_days[ format(all_days, "%m-%d") == "01-01" ]
april <- all_days[ format(all_days, "%m-%d") == "04-01" ]
july <- all_days[ format(all_days, "%m-%d") == "07-01" ]
october <- all_days[ format(all_days, "%m-%d") == "10-01" ]
# Finally plot the axes
axis.Date(1, at=months, label=FALSE, tcl=-.3)
axis.Date(1, at=january, label=format(january, "%Y"))
axis.Date(1, at=april, label=format(april, "%b"))
axis.Date(1, at=july, label=format(july, "%b"))
axis.Date(1, at=october, label=format(october, "%b"))
Вы также можете посмотреть на ggplot2: ось по умолчанию для дат редко требуетсяподстройка.