使用ggplot2将轴值重新排序为升值?

时间:2011-11-14 17:42:58

标签: r ggplot2

我正在尝试在R中生成一个简单的ggplot2抖动图。对于x值,我有1到100之间的整数。当我绘制此数据时,我的x轴以值1开始,然后转到{{1}如何重新排序我的x轴以创建升序值(例如,1,2,3,4,5 ......等)?

这是我的代码:

11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, etc.

编辑:我应该指出我也有一些data = read.csv('my_data_file', sep"\t") x_values = data[,1] y_values = data[,2] qplot(rank, score, geom="jitter") x值。理想情况下,我希望x轴按数字递增,然后将non-integer值附加到x轴的末尾。 non-integer值的任何顺序都可以。

2 个答案:

答案 0 :(得分:3)

你必须转换为数字,正如@ gsk3所说,但是当this回答指出时,有一些困难,你应该使用:

x_values <- as.numeric(levels(x_values))[x_values]

答案 1 :(得分:1)

你的x变量在CSV中有引号(Excel因此而臭名昭着),这意味着R将其作为一个因子读取,默认情况下它会按字母顺序排列。修复级别,你将修复订单。或者更好,因为x似乎自然希望是一个整数,修复您的数据类型:

x_values <- as.integer(as.character(x_values))

尝试str(data)查看列的数据类型。如果您的数据很大,则有更有效的转换方式。