【问题标题】:Multiple graphs with different x-axis ticks [duplicate]具有不同x轴刻度的多个图[重复]
【发布时间】:2016-06-14 09:22:55
【问题描述】:

我有以下data.frame:

ef2 <- data.frame(X1=c(50,100,'bb','aa'), X2=c('A','A','B','B'), value=c(1,4,3,6))

我想创建两个图,一个用于 X2 中的每个组。

这是我的代码和获得的情节:

ggplot(data=ef2, aes(x=X1, y=value, group=X2)) +
  facet_grid(.~X2, scales="free_x") +
  geom_line(size=1) +
  geom_point(size=3) +
  xlab('') +
  ylab('Y')

问题是 x 轴是按字母顺序排列的,我不知道如何修复它。我尝试添加scale_x_discrete,但我不知道如何分隔组。您可以在以下链接中看到我获得的添加此参数的图:

ggplot(data=ef2, aes(x=X1, y=value, group=X2)) +
  facet_grid(.~X2, scales="free_x") +
  geom_line(size=1) +
  geom_point(size=3) +
  xlab('') +
  ylab('Y') +
  scale_x_discrete(limits=ef2$X1)

已编辑:我无法更改 ef2 data.frame。我已经尝试在另一个 data.frame 中排序因子:

ef2 <- data.frame(X1=c(50,100,'bb','aa'), X2=c('A','A','B','B'), value=c(1,4,3,6))
ef2$X1 <- as.character(ef2$X1)
nou <- data.frame(X1=factor(ef2$X1), levels=ef2$X1, X2=ef2$X2, value=ef2$value)

但它不起作用。

【问题讨论】:

  • 谷歌“ggplot order factor levels”,你会发现很多关于这个主题的其他帖子。
  • 我的问题不是订购因子水平。我的问题是如何使用我的 data.frame 创建另一个具有有序因子的数据。

标签: r plot ggplot2 limits


【解决方案1】:

这对我有用,但我不确定它是否正是您需要的:

ef2 <- data.frame(X1=factor(c('50','100','bb','aa'), levels = c('50','100','bb','aa')), X2=c('A','A','B','B'), value=c(1,4,3,6))

ggplot(data=ef2, aes(x=X1, y=value, group=X2)) +
  facet_grid(.~X2, scales="free_x") +
  geom_line(size=1) +
  geom_point(size=3) +
  xlab('') +
  ylab('Y')

根据这个帖子:Avoid ggplot sorting the x-axis while plotting geom_bar() ggplot 自动订购,除非您提供已订购的因素。

更新:

您使用的代码有错误。 levelsfactor 函数的参数。 试试这个:

ef2 <- data.frame(X1=c(50,100,'bb','aa'), X2=c('A','A','B','B'), value=c(1,4,3,6))
ef2$X1 <- factor(ef2$X1, levels = unique(ef2$X1))

【讨论】:

  • 非常感谢您的回答!问题是我无法更改 ef2 data.frame。我尝试创建一个新的:ef2 &lt;- data.frame(X1=c(50,100,'bb','aa'), X2=c('A','A','B','B'), value=c(1,4,3,6)) ef2$X1 &lt;- as.character(ef2$X1) nou &lt;- data.frame(X1=factor(ef2$X1), levels=ef2$X1, X2=ef2$X2, value=ef2$value) 但它不起作用
  • 完美,谢谢!
猜你喜欢
  • 2017-10-12
  • 2017-08-01
  • 1970-01-01
  • 2013-01-22
  • 2017-12-14
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多