【问题标题】:Dot plot of all columns in R against the column numberR中所有列与列号的点图
【发布时间】:2021-04-11 20:48:16
【问题描述】:

假设我有一个如下所示的数据框

mydf=data.frame(method=factor(1:10), x1=rpois(10,2), x2=round(rnorm(10),3), x3=rgeom(10,0.3))

我想在同一张图中绘制从X1X3 的所有变量的点图。我尝试了以下代码

plot(mydf$x1~rep(1,10), xlab="", ylab = "")
plot(mydf$x2~rep(2,10), xlab="", ylab = "")
plot(mydf$x3~rep(3,10), xlab="", ylab = "")

如何将它们绘制成单个图形?

【问题讨论】:

标签: r plot multiple-columns dot


【解决方案1】:

可能不是您的想法,但不妨试试ggplot

library(dplyr)
library(tidyr)
library(ggplot)
mydf %>% 
   pivot_longer(-method, names_to = "variable") %>% 
ggplot(aes(x = variable, y = value)) +
  geom_point()

否则,只需使用points 而不是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)

【讨论】:

    【解决方案2】:

    您可能正在寻找matplot

    matplot(t(mydf[-1]), pch=16, col=1, xaxt="n")
    axis(1, 1:3, names(mydf[-1]))
    


    数据:

    set.seed(42)
    mydf=data.frame(method=factor(1:10), x1=rpois(10,2), x2=round(rnorm(10),3), x3=rgeom(10,0.3))
    

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 2022-11-12
      • 2013-11-28
      • 1970-01-01
      • 2018-03-30
      • 2016-08-26
      • 1970-01-01
      • 2012-01-31
      相关资源
      最近更新 更多