[R] Problem using ggplot2 with the legend of a stacked bar chart
John McKown
john.archie.mckown at gmail.com
Fri Jul 25 15:07:47 CEST 2014
I am creating two graphs using ggplot2. The graphs are of the same
data. One is a stacked bar chart. The other is a line graph. The code
is below.
<code>
MSU_graph_m1 <- ggplot(cpprdald2_m1,aes(x=Int_Start,
y=LicPrLsys4HMSU,
fill=System_alias,
# color=System_alias,
ymax=LicPrLsys4HMSU_max))+
theme(plot.title = element_text(size = rel(3),
vjust=1, face="bold"),
panel.grid.major = element_line(color="black",size=1),
panel.grid.minor = element_line(color="black",size=1),
legend.position="top",
legend.direction="horizontal",
legend.text = element_text(size=rel(1.5)),
axis.line = element_line(size=3, color="black"),
axis.text = element_text(angle=90, size=rel(0.9)),
axis.title = element_text(size = rel(2)),
axis.ticks = element_line(color="black")) +
labs(x="Date and Time",y="MSUs",title=title)+
guides(fill=guide_legend(reverse=TRUE,title="LPARs",direction="horizontal"))+
scale_x_datetime(breaks = date_breaks('1 day'),
minor_breaks=date_breaks('1 hour'), labels=date_format("%b %d
%H:%M")) +
scale_y_continuous(breaks = seq(0,LicPrLsys4HMSU_max,5L)) +
scale_fill_manual(values=c("yellow","blue")) ;
MSU_graph_m1b <- MSU_graph_m1+geom_bar(size=0.7,stat="identity");
MSU_graph_m1l <- MSU_graph_m1+geom_line(size=1.5);
#
</code>
Now, if I use the "color=System_alias", the legend shows up where I
want: on the top, with the horizontal orientation, and labelled
"LPARs". But I want the order reversed. Which I can't see how to do
using this method. So I added the "guides=(fill..." line to reverse
the legend. But now the legend is on the right, vertically oriented,
and labelled "System_alias" (the variable name).
I now have eye strain from looking at the vignettes and in the book "R
Graphics Cookbook" and just can't figure out a way to get what I want.
Now, using Rstudio, I examined what is in MSU_graph_m1. And saw a
variable called "labels". This is a list containing more variables.
Once of which is called "colour". That variable has the value of
"System_alias". I found that if I set it to the value of "LPARs", then
the legend has the proper title. But I don't like doing this sort of
thing.
--
There is nothing more pleasant than traveling and meeting new people!
Genghis Khan
Maranatha! <><
John McKown
More information about the R-help
mailing list