Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ggplot2 histogram legend too large

I'm pretty happy with the results I'm getting with R. Most of my stacked histogram plots are looking fine, e.g.

enter image description here

and

enter image description here

However, I have a few that have so many categories in the legend that the legend is crowing out the plot, e.g.

enter image description here

How can I fix this?

Here is my plot.r, which I call on the command line like this

RScript plot.r foo.dat foo.png 1600 800

foo.dat

account,operation,call_count,day
cal3510,foo-method,1,2016-10-01
cra4617,foo-method,1,2016-10-03
cus4404,foo-method,1,2016-10-03
hin4510,foo-method,1,2016-10-03
mas4484,foo-method,1,2016-10-04
...

entirety of foo.dat: http://pastebin.com/xnJtJSrU

plot.r

library(ggplot2)
library(scales)

args<-commandArgs(TRUE)

filename<-args[1]
png_filename<-args[2]

wide<-as.numeric(args[3])
high<-as.numeric(args[4])

print(wide)
print(high)

print(filename)
print(png_filename)

dat = read.csv(filename)

dat$account = as.character(dat$account)
dat$operation = as.character(dat$operation)
dat$call_count = as.integer(dat$call_count)
dat$day = as.Date(dat$day)

png(png_filename,width=wide,height=high)

p <- ggplot(dat, aes(x=day, y=call_count, fill=account))
p <- p + geom_histogram(stat="identity")
p <- p + scale_x_date(labels=date_format("%b-%Y"), limits=as.Date(c('2016-10-01','2017-01-01')))

print(p)

dev.off()
like image 870
slashdottir Avatar asked Dec 10 '22 13:12

slashdottir


1 Answers

Answer from @PierreLafortune

using:

p <- p + theme(legend.position="bottom")
p <- p + guides(fill=guide_legend(nrow=5, byrow=TRUE))

much improved

like image 149
slashdottir Avatar answered Jan 31 '23 18:01

slashdottir