Suppose I have a data frame like below
mydf=data.frame(method=factor(1:10), x1=rpois(10,2), x2=round(rnorm(10),3), x3=rgeom(10,0.3))
I would like to make a dot plot of all variables from X1
through X3
in the same figure. I tried the following code
plot(mydf$x1~rep(1,10), xlab="", ylab = "")
plot(mydf$x2~rep(2,10), xlab="", ylab = "")
plot(mydf$x3~rep(3,10), xlab="", ylab = "")
How can I plot them in single figure?
Probably not what you had in mind, but maybe give ggplot
a try?
library(dplyr)
library(tidyr)
library(ggplot)
mydf %>%
pivot_longer(-method, names_to = "variable") %>%
ggplot(aes(x = variable, y = value)) +
geom_point()
Otherwise, just use points
instead of plot
:
plot(mydf$x1~rep(1,10), xlab="", ylab = "", xlim = c(0.5,3.5), ylim = range(mydf[,2:4]), xaxt = 'n')
points(mydf$x2~rep(2,10))
points(mydf$x3~rep(3,10))
axis(1,at = 1:3)