This question is related to: R: how to label the x-axis of a boxplot
When more than one column is plotted, names appear. But when only one column is plotted, name does not appear, even when names=.. argument is used:
ddf = structure(list(apple = c(1, 2, 3, 4, 5), banana = c(5, 4, 3,
2, 1), watermelon = c(4, 5, 6, 7, 8)), .Names = c("apple", "banana",
"watermelon"), row.names = c(NA, -5L), class = "data.frame")
ddf
apple banana watermelon
1 1 5 4
2 2 4 5
3 3 3 6
4 4 2 7
5 5 1 8
boxplot(ddf[,1:2])
boxplot(ddf[,1])
Following also do not work:
boxplot(ddf[,1], names='apple')
boxplot(ddf[,1], names=c('apple'))
How can I add name to the boxplot when only one column is used? Thanks for your help.
Maybe you can use 'xlab':
boxplot(ddf[,1], xlab="apple")
There is a show.names= argument to bxp, which boxplot calls. You can thus do:
boxplot(ddf[1],show.names=TRUE)
Make sure this is ddf[1] not ddf[,1] though, so that the name is retained.
One way is to use mtext:
boxplot(ddf[,1])
mtext("apple", side=1, line=1)
The boxplot is added at x=1 by default, so you can add at tick and axis label to x=1 as would happen when you plot multiple columns.
axis(side = 1, at = 1, labels = 'apple')
I also used the solution with show.names for Boxplot{car}. In my case I wanted to sum up some columns in one boxplot and label the outliers at the same time, hence I used Boxplot.
Boxplot(df, show.names = T, names = "test samples", labels = rownames(df), id.method = c("y"), id.n=9)
For boxplot you don't need to support a list of names for show.names if you are satisfied with the names of your dataframe. For Boxplot you have to supply a name for the plot.
来源:https://stackoverflow.com/questions/25589686/add-name-to-boxplot-in-r