首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制数据中变量的“范围”

绘制数据中变量的“范围”
EN

Stack Overflow用户
提问于 2014-11-29 18:40:07
回答 2查看 7.4K关注 0票数 4

我有对范围的观察,例如:A 13-20,B 15-30,C 23-40,D 2-11,我想在R中绘制它们的起始值和结束值。13和20的A(上限和下限,如果你可以说),以便可视化和找出哪些范围是共同的某些组合的观察。在R中有什么快速的方法可以做到吗?我认为这是一个很小的问题,我有,但我想不出无论如何,现在去做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-29 19:13:34

下面是使用ggplot的解决方案。还不清楚您的数据的格式是什么,因此假设数据框架包含id ( and )、minmax列。

代码语言:javascript
复制
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()

我增加了大量的定制,只是为了让您了解它是如何完成的。您可以使用aes(...)函数告诉ggplotdf中的哪些列映射到图形的各种美学。例如,aes(x=id)告诉ggplot,x轴的值可以在dfid列中找到,等等。

编辑:对OP评论的响应。

若要更改轴文本的大小,请使用theme(...)函数,如下所示:

代码语言:javascript
复制
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))

在这里,我使x轴的文本更大。和size=...一起玩,以你想要的方式得到它。还可以阅读文档(?theme)以获得其他格式选项的列表。

票数 6
EN

Stack Overflow用户

发布于 2014-11-29 19:02:47

还不清楚dataset是否具有string格式的范围列,即'13-20''15-30'等,或者是否如所创建的示例所示是两个numeric列。

代码语言:javascript
复制
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)

如果datastring列(d1)

代码语言:javascript
复制
library(splitstackshape)
d2 <- setDF(cSplit(d1, 'range', '-'))
matplot(d2[,-1], xaxt='n', pch=1, ylab='range')
axis(1, at=seq_len(nrow(d2)), labels=d2$Col1)
arrows(s1, d2[,2], s1, d2[,3], angle=90, length=0.1)

数据

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27205629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档