I am preparing a plot for publication. I created a stacked box plot to show frequency of patients in each group who were some complicated accumulation of seronegatives versu
The standard way is to use the scale functions to change the displayed labels for groups. You can replace your ggplot
call with
ggplot(data, aes(grp, fill=outcome)) + geom_bar() +xlab("group") +
ylab("number of subjects") +
scale_fill_discrete("Serologic response",
breaks=c("(10.1,79.9]","(79.9,150]"),
labels=c("double negative", "positive for a and/or b"))
Note that the scale's title has been incorporated into the scale_fill_discrete
call. You can do this with the axes too, if you like
ggplot(data, aes(grp, fill=outcome)) + geom_bar() +
scale_x_discrete("group") +
scale_y_continuous("number of subjects") +
scale_fill_discrete("Serologic response",
breaks=c("(10.1,79.9]","(79.9,150]"),
labels=c("double negative", "positive for a and/or b"))
I found a hybrid way of doing it. It does relabel the factor but I do not have to do it in the dataframe. Instead I just do it in the ggplot command.
ggplot(data, aes(grp, fill=factor(outcome,labels=c("low","high")))) +
geom_bar() +xlab("group") +ylab("number of subjects") +
labs(fill="Serologic response")
Are there any other ways?