ggplot:离散x轴的线图

Posted

技术标签:

【中文标题】ggplot:离散x轴的线图【英文标题】:ggplot: line plot for discrete x-axis 【发布时间】:2016-05-14 13:05:09 【问题描述】:

我有下表,但经过多次尝试后无法绘制数据,因此 x 轴刻度线与 year 对齐。我找到了箱线图的解决方案,但不是geom_line()

如何制作年份的离散标签?

以下解决方案无效

g + scale_x_discrete(limits=c("2013","2014","2015"))
g + scale_x_discrete(labels=c("2013","2014","2015"))
distance_of_moves 距离移动年份 1 2.914961 2013 2 2.437516 2014 3 2.542500 2015 ggplot(data = distance_of_moves, aes(x = year, y = `距离移动`, group = 1)) + geom_line(color = "red", linetype = "dashed", size = 1.5) + geom_point(color = "red", size = 4, shape = 21, fill = "white") + ylab("平均移动距离") + xlab("年")

【问题讨论】:

您是否打算在标签中两次列出 2014 年? aes()中使用as.factor(year) 不,只有一次,那是个错误 现在你有一个连续的比例,因为你的year 列是数字的。您可以 (a) 将该列转换为 factor 或 (b) 指定所需的间隔并继续使用连续刻度:+ scale_x_continuous(breaks = 2013:2015) @JabroJacob 在 R(和 ggplot 中)分类/数字通常是有意义的区别。年份,即使它们是时间的离散度量,也是“连续的”,因为它们存储为数字(并且年份之间的距离之类的东西是明确定义的)。离散(整数)与连续(实数)数值之间很少有重要区别。 【参考方案1】:

可重现的例子:

data <- data.frame(dist=c(2.914, 2.437, 2.542), year=c(2013, 2014, 2015))
# this ensures that stuff will be ordered appropriately
data$year <- ordered(data$year, levels=c(2013, 2014, 2015))
ggplot(data, aes(x=factor(year), y=dist, group=1)) +
  geom_line() +
  geom_point()

将年份指定为有序因子将确保 x 轴正确排序,而不管级别出现的顺序如何(而在绘图美学中仅使用“因子(年份)”可能会导致问题)。

【讨论】:

“group=1”有什么作用?顺便说一句,在这个论坛上一定时间后应该有一些自动接受答案。 你需要在 ggplot2 中有线条的群体美学; ggplot2 的编写方式,您选择的特定几何图形应用于所有相关分类变量的组合(即,在这种情况下,x 轴的因子)。这不适用于线条,因为它会导致每点有 1 条线(这不是一回事)。因此,指定 group=1 告诉 ggplot 每个点都将与单个线组连接。 ***.com/questions/10357768/…这篇文章提供了详细信息 哦!非常感谢!!?

以上是关于ggplot:离散x轴的线图的主要内容,如果未能解决你的问题,请参考以下文章

我的离散 y 轴的标题不会在 ggplot2 中移动

R:绘制具有连续x轴的箱线图:为每个框选择一个间隔

在连续 x 轴上按组填充和闪避箱线图

【R语言】--- ggplot2绘制折线图

R语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战

即使我使用数字,ggplot2中的离散值/连续比例误差