R 绘图';范围';数据中变量的定义

R 绘图';范围';数据中变量的定义,r,plot,range,R,Plot,Range,我有以射程形式表示的观测值 例如:A13-20,B15-30,C23-40,D2-11 我想以R的形式绘制它们,例如A的起始值和结束值13和20(上限和下限,如果你可以这么说),以便可视化并找出某些观测组合的共同范围。在R中有没有一种快速的方法可以做到这一点?我认为这是一个非常小的问题,我有,但我不能想无论如何现在做它 不清楚数据集的范围列是否为字符串,即'13-20','15-30'等,或者是否为两个数值列,如创建的示例所示 matplot(m1, xaxt='n', pch=1, ylab=

我有以射程形式表示的观测值 例如:A13-20,B15-30,C23-40,D2-11
我想以R的形式绘制它们,例如A的起始值和结束值13和20(上限和下限,如果你可以这么说),以便可视化并找出某些观测组合的共同范围。在R中有没有一种快速的方法可以做到这一点?我认为这是一个非常小的问题,我有,但我不能想无论如何现在做它

不清楚数据集的范围列是否为
字符串
,即
'13-20'
'15-30'
等,或者是否为两个
数值
列,如创建的示例所示

matplot(m1, xaxt='n', pch=1, ylab='range')
axis(1, at=seq_len(nrow(m1)), labels=row.names(m1))
s1 <- seq_len(nrow(m1))
arrows(s1, m1[,1], s1, m1[,2], angle=90, length=0.1)
数据
m1这里有一个使用
ggplot
的解决方案。数据的格式根本不清楚,因此假设数据框中有列
id
(a-D)、
min
、和
max

df <- data.frame(id=LETTERS[1:4], min=c(13,15,23,2), max=c(20,30,40,11))
library(ggplot2)
ggplot(df, aes(x=id))+
  geom_linerange(aes(ymin=min,ymax=max),linetype=2,color="blue")+
  geom_point(aes(y=min),size=3,color="red")+
  geom_point(aes(y=max),size=3,color="red")+
  theme_bw()


在这里,我将x轴文本放大。玩转
size=…
以获得您想要的方式。另请阅读文档(
?theme
)以获取其他格式选项的列表。

非常感谢,是的,我的数据与您假设的格式相同。是否有办法减小id轴上字体的大小?我有很多观察结果,所以它们相互重叠。我尝试使用cex.axis,但它显示出代码错误。
m1 <- matrix(c(13,20, 15,30, 23,40, 2,11), 
  byrow=TRUE,dimnames=list(LETTERS[1:4],NULL), ncol=2)

d1 <- data.frame(Col1=LETTERS[1:4], 
      range=c('13-20', '15-30', '23-40', '2-11'), stringsAsFactors=FALSE)
df <- data.frame(id=LETTERS[1:4], min=c(13,15,23,2), max=c(20,30,40,11))
library(ggplot2)
ggplot(df, aes(x=id))+
  geom_linerange(aes(ymin=min,ymax=max),linetype=2,color="blue")+
  geom_point(aes(y=min),size=3,color="red")+
  geom_point(aes(y=max),size=3,color="red")+
  theme_bw()
ggplot(df, aes(x=id))+
  geom_linerange(aes(ymin=min,ymax=max),linetype=2,color="blue")+
  geom_point(aes(y=min),size=3,color="red")+
  geom_point(aes(y=max),size=3,color="red")+
  theme_bw()+
  theme(axis.text.x=element_text(size=15))