我有一个整数向量,例如:2,8,11,19
。
我想绘制一条长度,例如20然后为列表中存在的每个值绘制一个点(在某个恒定的高度),所以我得到这样的结果:
-+-----+--+-------+-
答案 0 :(得分:6)
library(lattice)
x <- c(2, 8, 11, 19)
stripplot(x)
您可以根据自己的喜好调整比例。见?stripplot
答案 1 :(得分:4)
使用基本图形:
x <- c(2,8,11,19)
x <- data.frame(x,1) ## 1 is your "height"
plot(x, type="b")
答案 2 :(得分:3)
Brandon Bertelsen非常亲密......
x <- c(2,8,11,19)
x <- data.frame(x,1) ## 1 is your "height"
plot(x, type = 'o', pch = '|', ylab = '')
但是我写这篇文章主要是为了提到你可能还会在基础图形中查看stripchart()和rug()来查看一维数据。
答案 3 :(得分:1)
这对于绘制一维有序数据的人可能会有所帮助。
x<-c(-1.5,2,2.5,-2,.05)
## Make y-value=0
x<-cbind(x,0)
## Plotting without box or axis with dot, representing data points
plot(x,bty='n',xaxt='n',yaxt='n',ylab='',xlab='',pch=21,cex=2)
## Placing axis at y-value in order to pass through points with sequence wider than range
axis(side=1,seq(-4,4,1),pos=0) ## Using y-value as position
## Placing x-values & x-axis label onto plot
text(x,labels=x[,1],pos=3,offset=1,font=2)
text(y=0,x=0,labels='One-Dimensional Plot',pos=1,offset=3,font=2)
答案 4 :(得分:1)
这可以使用ggplot2
通过删除所有轴并在恒定y值上绘制来完成。然后,您可以使用常用的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())
此图实质上是一条以0为中心的直线,并在末端添加了另外两个线段作为止挡。 annotate("segment",...)
优先于参考线,因为您可以控制该线的绘制时间。
答案 5 :(得分:0)
有趣的是,没有人提到stripchart
stripchart(x, pch = "+")
您可以使用add = TRUE
将带状图添加到现有绘图中,并使用at
参数定义用于绘制数据的y值。