我有一个整数向量,例如:2,8,11,19.
我想绘制一条长度的线,例如20,然后为列表中存在的每个值绘制一个点(在某个恒定的高度),所以我得到这样的东西:
-+-----+--+-------+-
library(lattice)
x <- c(2, 8, 11, 19)
stripplot(x)
Run Code Online (Sandbox Code Playgroud)
你可以根据自己的喜好调整尺度.看到?stripplot
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() 以了解查看一维数据的方法。
这可以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",...)优先于参考线,因为您可以控制绘制线的长度。