【问题标题】:How to reverse coordinates on a line graph ggplot2 R如何在折线图ggplot2 R上反转坐标
【发布时间】:2013-01-21 09:44:33
【问题描述】:

我正在做一个数据可视化项目,并且正在制作一些折线图。这是我的数据集:

groupA <- read.csv("afcongroupA.csv", header=T, row.names=NULL)
groupA
    Date               Team Position
1   1/12       South Africa       56
2   1/12             Angola       85
3   1/12            Morocco       61
4   1/12 Cape Verde Islands       58
5   4/12       South Africa       71
6   4/12             Angola       78
7   4/12            Morocco       62
8   4/12 Cape Verde Islands       76
9   8/12       South Africa       67
10  8/12             Angola       85
11  8/12            Morocco       68
12  8/12 Cape Verde Islands       78
13 12/12       South Africa       87
14 12/12             Angola       84
15 12/12            Morocco       72
16 12/12 Cape Verde Islands       69

然后我将它们绘制在折线图上,以显示排名下降的上升趋势:

groupA$Date <- factor(groupA$Date, levels=groupA$Date[!duplicated(groupA$Date)])
ggplot(groupA, aes(x=Date, y=Position, colour=Team, group=Team)) + geom_line()

我想要做的是反转 y 轴,使最大的数字位于底部。我尝试了这段代码:

groupA <- coord_flip() + scale_x_reverse()

但我收到此错误消息:

Error in coord_flip() + scale_x_reverse() : 

二元运算符的非数字参数

我在运行 OS X 的 Mac 上使用 R 2.15.2。

【问题讨论】:

  • 您能否使您的示例可重现,即我们可以将代码粘贴到 R 中并查看图像。
  • 您的第一个问题是您尝试将 coord_flip() 保存为原始数据框(行 groupA
  • 嗨,保罗。我不确定你还需要什么,我只是添加了我最初遗漏的因子方法。 @Didzis 现在会尝试。

标签: r ggplot2


【解决方案1】:

由于您的专栏Date 是一个因素,因此scale_x_reverse() 将不起作用。一种解决方案是在数据框中排序您的因素水平

groupA$Date <- factor(groupA$Date, levels=rev(unique(groupA$Date)))

然后只需使用您的代码来制作绘图和翻转轴。

ggplot(groupA, aes(x=Date, y=Position, colour=Team, group=Team)) +
      geom_line()+coord_flip()

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 2021-01-06
    • 2016-08-05
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2018-10-19
    • 2018-03-21
    • 2016-09-20
    相关资源
    最近更新 更多