如何在R中绘制一维图?

Dav*_*d B 2 plot r

我有一个整数向量,例如:2,8,11,19.

我想绘制一条长度的线,例如20,然后为列表中存在的每个值绘制一个点(在某个恒定的高度),所以我得到这样的东西:

-+-----+--+-------+-

Gre*_*reg 6

library(lattice)


x <- c(2, 8, 11, 19)
stripplot(x)
Run Code Online (Sandbox Code Playgroud)

你可以根据自己的喜好调整尺度.看到?stripplot


Joh*_*ohn 6

Brandon Bertelsen 真的很接近...

x <- c(2,8,11,19)
x <- data.frame(x,1) ## 1 is your "height"
plot(x, type = 'o', pch = '|', ylab = '')
Run Code Online (Sandbox Code Playgroud)

但我写这篇文章主要是为了提到您可能还会在基础图形中查看 stripchart() 和 rug() 以了解查看一维数据的方法。


And*_*nes 6

这可以ggplot2通过删除所有轴并绘制恒定 y 值来完成。然后,您可以使用常用ggplot2功能来更改点的颜色,并使用文本、更多线条等进行注释。

在此处输入图片说明

library(ggplot2)

x=c(2,8,11,19)

ggplot(data.frame(x), aes(x=x, y=0)) +
  geom_point(size = 10)  +
  annotate("segment",x=1,xend=20, y=0, yend=0, size=2) +
  annotate("segment",x=1,xend=1, y=-0.1,yend=0.1, size=2) +
  annotate("segment",x=20,xend=20, y=-0.1,yend=0.1, size=2) +
  geom_text(aes(label = x), col="white") +
  scale_x_continuous(limits = c(1,20)) +
  scale_y_continuous(limits = c(-1,1)) +
  scale_color_manual(values = unname(colours)) + 
  theme(panel.background = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank())
Run Code Online (Sandbox Code Playgroud)

该图本质上是一条以 0 为中心的直线,并在末端添加了两条线段作为止动件。annotate("segment",...)优先于参考线,因为您可以控制绘制线的长度。