Formatting dates with scale_x_date in ggplot2

RDateFormattingGgplot2

R Problem Overview


In a previous version of ggplot2, I was able to use one of the two following commands to format my x dates: Either

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=(date_format="%B")) +

or

scale_x_date(major="months", minor="weeks", format="%B") +

to produce "%B" format, of full month name.

(I'm afraid I can no longer distinguish which one worked, because they were both commented out.)

I don't recall when, but after updating either R or ggplot in an ubuntu 12.04 upgrade, this no longer worked for me. Now, the very same data produces the error:

Error in scale_labels.continuous(scale) : 
  Breaks and labels are different lengths

With the first, and

Error in continuous_scale(aesthetics, "date", identity, breaks = breaks,  : 
  unused argument(s) (major = "months", minor = "weeks", format = "%B")

With the second.

If I remove the labels= argument, and apply

scale_x_date(breaks = "1 month", minor_breaks = "1 week") +

it produces a date format of "YYYY-MM-DD" on the first of each month.

Consulting with the help for function ?scale_x_date, I've also tried the following:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) +

But this produces this error:

Error in structure(list(call = match.call(), aesthetics = aesthetics,  : 
  could not find function "date_format"

How can I achieve month-name "%B" formatting on my x axis? (If you have any additional insights into the mechanics producing these error messages, I'd also appreciate it.)

R Solutions


Solution 1 - R

With the new ggplot2 v 2.0.0, a way to do it is :

scale_x_date(date_breaks = "1 month", date_minor_breaks = "1 week",
             date_labels = "%B")

Solution 2 - R

Nevermind, the answer was to use the version found in the documentation,

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) +

And to include library(scales) as the documentation says.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMittenchopsView Question on Stackoverflow
Solution 1 - RYCRView Answer on Stackoverflow
Solution 2 - RMittenchopsView Answer on Stackoverflow