考虑将以下数据框绘制为geom_line
:
mydata <- data.frame(X = c('1 Dog', '2 Dog', '3 Dog', '4 Dog', '1 Frog', '2 Frog', '1 Cat', '2 Cat'), Y = sample(1:3, 8, replace = T))
myplot <- ggplot(mydata, aes(x = X, y = Y, group = 1)) + geom_line() + theme(axis.text.x = element_text(angle = 90, hjust = 1))
print(myplot)
该图按数字和字母顺序对 x 轴进行排序。如何防止这种情况,以便按照数据框中的顺序绘制图形?将X
转换为字符无济于事。我无法手动订购 x 轴刻度,因为我的原始数据集有数千个条目。
您应该创建一个有序因子来阻止排序。例如
mydata$x <- factor(maydata$x,
levels = c('1 Dog', '2 Dog', '3 Dog', '4 Dog', '1 Frog', '2 Frog', '1 Cat', '2 Cat'),
ordered = T)
在 levels 参数中,您应该按照您希望在绘图中看到的特定顺序提及级别。参数ordered = T
保留顺序。