首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R图:创建Tufte的水平条形线

R图:创建Tufte的水平条形线
EN

Stack Overflow用户
提问于 2012-12-04 11:05:56
回答 3查看 4.8K关注 0票数 20

我们如何在R中复制Tufte的隐式水平线?

例如,以下是一个很好的起点:

代码语言:javascript
复制
library(ggplot2)    
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw()

删除边界线应该是直接的。在我看来,关键的一点,就是把横线和栏杆叠加在一起,这一点我不清楚。

我想这里有两种方法:

  1. 此特定示例的即席解决方案
  2. 建议如何将其纳入主题
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-24 13:17:21

在@下面,我使用theme_tufte,使用extrafont包更改字体,并使用opts微调所有其他可视化功能:

代码语言:javascript
复制
library(ggthemes)
library(extrafont)
ggplot(msleep, aes(x=order)) + stat_bin(width=0.6, fill="gray") + 
  theme_tufte(base_family="GillSans", base_size=16, ticks=F) +
  theme(axis.line=element_blank(), axis.text.x=element_blank(),
        axis.title=element_blank()) +
  geom_hline(yintercept=seq(5, 20, 5), col="white", lwd=1.2)

票数 12
EN

Stack Overflow用户

发布于 2012-12-04 11:10:22

原则上,这是直截了当的--你所需要做的就是在一个新的层中画出白色的水平线。您可以使用geom_hline来完成以下操作:

代码语言:javascript
复制
library(ggplot2)    
ggplot(msleep, aes(x=order)) + stat_bin() + theme_bw() +
  geom_hline(yintercept=seq(5, 20, 5), col="white")

至于你的第二个问题--我想这可能很难融入主题中,尽管应该可以创建一个定制的geom来读取y尺度的断点,并相应地绘制线条。

(我希望被证明是错的。)

票数 18
EN

Stack Overflow用户

发布于 2013-10-26 18:44:09

这里还有一个非常简单的基本R解决方案:

代码语言:javascript
复制
tmp <- table(msleep$order)
barplot(tmp, col='black', las=3)
abline(h=seq(5, max(tmp), by=5), col='white', lwd=2)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13701485

复制
相关文章

相似问题

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