如何在R中绘制一维图?

时间:2010-09-26 16:20:03

标签: r plot

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

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

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

6 个答案:

答案 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函数来更改点的颜色,并用文本,更多行等进行注释。

enter image description here

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值。