r - ggplot - 防止字符或因子 x 轴值的排序
问题描述
考虑以下数据框被绘制为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)
在级别参数中,您应该按照您希望在图中看到的特定顺序提及级别。该参数ordered = T
保留了顺序。
推荐阅读
- linux - 如何通过在.sh文件中编码在命令行中打印文本文件的特定部分
- html - 具有相等高度位置的 SVG 路径将不会呈现
- c# - 如何在 C# 中使用 Socket 访问标准输入?
- django - 模态Django中的轮播
- python - 熊猫过滤一列中的多个同名条目以在另一列中提供所有其他相关项
- python - ValueError:无法将输入数组从形状 (32,256,256,3) 广播到形状 (32)
- android - 在 webview 中将卡凭证插入到加载的 html
- arrays - 如何从 Talend 中的 JSON 数组中获取第一个对象
- visual-studio-code - 连接时如何在菜单中选择vscode遥控器?
- postgresql - 那是否能够在 PostgreSQL 中拥有一个事务型全局变量?