Hi:
Here's a way you could do it entirely within ggplot2. The annotation
functions have a parse = argument which allows you to pass character
string representations of math expressions, but there is no such thing
in the scale functions, so you need a different approach.
library(ggplot2)
df <- data.frame(vis=c(0,0,1,1) , count=c(10,15,20,10) , grp=c(0,1,0,1))
# Generate a list of expressions that will become the legend labels
lbs <- list(expression(x <= 10), expression(x > 10))
ggplot(df, aes(x = factor(vis), y=count , fill=factor(grp))) +
geom_bar(stat ="identity") +
scale_fill_manual(breaks = levels(factor(df$grp)),
values = c("blue", "orange"),
labels = lbs)
The specifications in scale_fill_manual() are:
- breaks: the values to go on the horizontal axis
- values: the vector of fill colors for each level of grp
- labels: the legend labels
Notice that the labels = takes a list of expressions as its argument.
This approach gives you more control over the legend and choice of
fill colors at the expense of a couple of lines of code. To change the
axis and legend titles, one can use the labs() function; e.g.,
last_plot() + labs(x = "Visibility", y = "Frequency", fill = "Threshold")
Dennis
On Thu, Mar 28, 2013 at 2:22 PM, soon yi <
Hi
I am trying to add a less than equal sign to a plot. I have previously
done
this using unicode but is not working in this instance. Any suggestions
would be great
thanks
example code:
library(ggplot2)
df<-data.frame(vis=c(0,0,1,1) , count=c(10,15,20,10) , grp=c(0,1,0,1))
df$grp <-factor(df$grp ,levels=c(0,1) , labels =c("x \u2265 10" , "x >
10"))
ggplot(df, aes(x = factor(vis), y=count , fill=grp)) + geom_bar(stat =
"identity")
--
View this message in context:
http://r.789695.n4.nabble.com/ggplot2-less-than-equal-sign-tp4662784.html
Sent from the R help mailing list archive at Nabble.com.