ggplot 轴对收集的数据子集有单独的顺序,我可以将它们组合起来吗?

ggplot axes have separate order for subsets of gathered data, can I combine them?

我有一个数据集,显示 15 年期间不同教育程度的人的周收入中位数。我正在尝试为两个教育级别中的每一个绘制值的散点图,但出于某种原因,我的绘图分别对每个教育级别的 y 值进行排序,然后将它们堆叠起来。

我不确定这是否是我收集原始值的方式或生成绘图的方式的问题,但我浏览了这个网站和其他几个网站,但我不知道如何解决这个。我已经包含了下面的代码。

EdData <- read.csv("~/desktop/EdData.csv")

library(ggplot2)
library(tidyr)
library(dplyr)

EdData_Long <- gather(EdData, "Education", "Earnings", Weekly.Earnings.HS.Only, Weekly.Earnings.College, na.rm = FALSE)

ggplot(data = EdData_Long, aes(x = Year, y = Earnings, colour = Education)) + geom_point()

我是 R 的新手,如果这真的很基础,我很抱歉。我保证我在发布之前确实尝试找到答案,但我什至不知道描述我遇到的问题的正确术语。提前感谢您提供的任何帮助。

如果有帮助,我已经发布了(非常小的)数据集here

您的 csv 文件似乎已损坏。我用相同的数据和相同的代码清理了它并得到了这个:

你说的是这个吗?

您可以使用 readr 包中的 read_csv 来指定列为数字;它将计算出转换:

library(readr)
EdData <- read_csv("EdData.csv",
                   col_types = cols(`Annual Difference` = col_number(),
                                    Tuition = col_number(),
                                    `Weekly Earnings College` = col_number(),
                                    `Weekly Earnings Difference` = col_number(),
                                    `Weekly Earnings HS Only` = col_number(), 
                                    `Weekly Earnings No HS` = col_number()))

这将保留列名中的空格,因此您还需要修改 gather:

EdData_Long <- gather(EdData_csv_EdData_csv, "Education", "Earnings",
                      `Weekly Earnings HS Only`, `Weekly Earnings College`,
                      na.rm = FALSE)