Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
267 views
in Technique[技术] by (71.8m points)

Dot plot of all columns in R against the column number

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?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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()

enter image description here

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)

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...