首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X轴上的因素太多

X轴上的因素太多
EN

Stack Overflow用户
提问于 2013-04-11 22:20:01
回答 2查看 14.6K关注 0票数 3

假设因子变量是有序的,那么处理图中太多因子的最佳方法是什么?默认设置看起来不太好:

代码语言:javascript
复制
ggplot(data.frame(x=factor(trunc(runif(10000, 0, 100)), ordered=T)), aes(x=x)) +
  geom_histogram()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-11 22:26:44

您可以反转这些值。

代码语言:javascript
复制
ggplot(data.frame(x=factor(trunc(runif(10000, 0, 100)), ordered=T)), aes(x=x)) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  geom_histogram()

flip <- ggplot(data.frame(x=factor(trunc(runif(10000, 0, 100)), ordered=T)), aes(x=x)) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  geom_histogram()

如果它仍然对你的口味来说太密集,你可以设置手动中断。在本例中,我使用了五个。

代码语言:javascript
复制
prune <- ggplot(data.frame(x=factor(trunc(runif(10000, 0, 100)), ordered=T)), aes(x=x)) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  scale_x_discrete(breaks = seq(0, 100, by = 5)) +
  geom_histogram()

library(gridExtra)
grid.arrange(flip, prune)

票数 4
EN

Stack Overflow用户

发布于 2013-04-12 03:55:13

使用不同的可视化方法- dotplot()。您可以用一个点表示频率,并将因子移动到y轴以水平显示,而不是垂直显示。这种加号排序为您提供了每个因素的频率的简单可视指示器。它在标签上有点密集,但如果您缩放,仍会显示因子。下面是使用lattice的示例

代码语言:javascript
复制
library(lattice)
d <- sort(table(factor(trunc(runif(10000, 0, 100)))))
dotplot(d, col=1, cex=0.5, scales = list(y = list(cex=0.5)))

但也许你想要的是像因子频率直方图这样的东西,尽管我不知道你会用它做什么。只是不要旋转x轴标签,这会使它不可读。

代码语言:javascript
复制
d <- factor(trunc(runif(10000, 0, 100)))
histogram(d, scales = list(x = list(at=seq(1,length(levels(dd)),5))))

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

https://stackoverflow.com/questions/15951216

复制
相关文章

相似问题

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