John and Rui, thanks! However, if we use the proper object, the problem still persists:
dotchart(c("3"=1, "2"=2, "1"=3), ylab="Ylab") # ylab is invisible dotchart(c("aa"=1, "b"=2, "cc"=3), ylab="Ylab") # ylab is partly visible (!!!) dotchart(c("aaa"=1, "bbb"=2, "ccc"=3), ylab="Ylab") # ylab is well visible If the object is matrix, ylab is visible: dotchart(matrix(1:3, dimnames=list(c("aa","bb","cc"), NULL)), ylab="Ylab") But the ?dotchart explicitly says that "x: either a vector or matrix of numeric values" and then "labels: a vector of labels for each point. For vectors the default is to use ‘names(x)’ ...". So this is likely a bug. Do you agree? Alexey пн, 17 февр. 2020 г. в 01:55, Rui Barradas <ruipbarra...@sapo.pt>: > > Hello, > > I believe you are wrong, the error is not in dotchart, it's in your > code. You assume that to plot an object of class "table" is the same as > to plot an object of class "numeric". > > Inline. > > Às 12:21 de 16/02/20, Alexey Shipunov escreveu: > > Dear list, > > > > I have been advised to share these with R-help instead of filling the > > bug report: > > > > 1) dotchart() does not allow to see the left axis title ('ylab') and > > cannot change the left margin (outer margin 2) of the plot > > > > The code: > > > > aa <- table(c(1, 1, 1, 2, 2, 3)) > > dotchart(aa, ylab="Ylab") # does not show 'ylab' > > You are right, it does *not* show 'ylab' but the user is warned. > > > aa <- table(c(1, 1, 1, 2, 2, 3)) > dotchart(aa, ylab = "Ylab") # does show 'ylab' > #Warning message: > #In dotchart(aa, ylab = "Ylab") : > # 'x' is neither a vector nor a matrix: using as.numeric(x) > > > My code: > > > (mar <- par("mar")) # new R session > #[1] 5.1 4.1 4.1 2.1 # the left margin is 4.1 > > aa <- as.numeric(table(c(1, 1, 1, 2, 2, 3))) > > dotchart(aa, ylab = "Ylab") # It does show 'ylab' > old.par <- par(mar = mar + c(0, 5, 0, 0)) > par("mar") > #[1] 5.1 9.1 4.1 2.1 > > dotchart(aa, ylab = "Ylab") # The left margin is now 9.1, much bigger > > par(old.par) # It does change the left margin > dotchart(aa, ylab = "Ylab") # but only when a new graph is plotted. > > > > > old.par <- par(mar=c(1, 10, 1, 1)) ; dotchart(aa, ylab="Ylab") ; > > par(old.par) # does not change left margin > > > > Possible solution: > > > > I researched the problem and think that the dotchart() code will need > > few corrections. If there is an interest, I can post it here; or you > > can look at the code of shipunov::Dotchart1() function. > > > > 2) example(hist) includes two "wrong" and "extreme" examples which > > slow down and even crash R on some systems; this make it unsuitable > > for demonstration in the class and strikes beginners in R who just > > want to understand how hist() works. Actually, I did it last week (I > > was not aware of these examples), and in the class two computers hang, > > and many others were extremely slow. > > > > The code: > > > > example(hist) > > > > Possible solution: > > > > If R maintainers will enclose parts of "hist" example in \dontrun{}, > > this will allow to see the code but in the same time will not strike > > beginners in R who just > > want to understand how hist() works. They will still be possible to > > run with example(..., run.dontrun=TRUE). > > Agree, it's annoying. Sometimes there's a Warning section after the > Details section. Maybe such a section could get users' attention to > those examples? At least it wouldn't hurt... > > > Hope this helps, > > Rui Barradas > > > > > With best wishes, > > > > Alexey Shipunov > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.