I have a list of companies that includes three variables: year founded, market capitalization and company name (actually, ticker symbol).
I want to plot them by year founded (X axis) and market capitalization (Y axis) with fill determined by vendor name.
Doing this:
qplot(factor(Founded), Market.Cap, data = mcap, geom = "bar", fill = Vendor)
Gets me that, but the X-axis is illegible (see below). I've tried to feed scale_x_discrete() values (1900 - 2012, etc) but had no luck. How do I tell ggplot2 not to display the actual values but instead a spectrum of my choosing?
And as a side note, if you can remind me how to avoid the scientific notation on the Y-axis, great.
I hope this helps. If rotating the axes doesn't work, then you can manually set the breaks and labels of the axis using breaks
and labels
within scale_x_continuous
as follows:
require(ggplot2)
# dummy data
set.seed(45)
len <- 50
df <- data.frame(years = factor(seq(1901, 1950, length.out = len)),
values = 1e6 * runif(len), group=factor(rep(1:5, each=len/5)))
p <- ggplot(data = df, aes(x = years, fill=group)) + geom_bar(aes(weight = values))
require(scales) # for removing scientific notation
p <- p + scale_y_continuous(labels = comma)
# manually generate breaks/labels
labels <- seq(1901, 2000, length.out=10)
# and set breaks and labels
p <- p + scale_x_discrete(breaks=labels, labels=as.character(labels))
p
The answers are found here
For your case, I would suggest rotating the x-axis labels 90 degrees:
+ theme(axis.text.x=element_text(angle=90, hjust=1))
and to change the y-axis notation:
+ scale_y_continuous(labels=comma)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With