[英]Reorder axis values to ascending values with ggplot2?
我試圖在R中生成一個簡單的ggplot2抖動圖。對於x值,我有1到100之間的整數。當我繪制這個數據時,我的x軸以值1開始,然后轉到11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, etc.
如何重新排序我的x軸以創建升序值(例如,1,2,3,4,5 ......等)?
這是我的代碼:
data = read.csv('my_data_file', sep"\t")
x_values = data[,1]
y_values = data[,2]
qplot(rank, score, geom="jitter")
編輯:我應該指出,我也有一些non-integer
x值。 理想情況下,我希望x軸按數字遞增,然后將non-integer
數值附加到x軸的末尾。 任何non-integer
數值的順序都可以。
您必須轉換為數字,正如@ gsk3所說,但正如此答案指出的那樣,存在一些困難,您應該使用:
x_values <- as.numeric(levels(x_values))[x_values]
您的x
變量在CSV中有引號(Excel因此而臭名昭着),這意味着R將其作為一個因子讀取,默認情況下它按字母順序排列。 修復級別,你將修復訂單。 或者更好,因為x
似乎自然希望是一個整數,修復您的數據類型:
x_values <- as.integer(as.character(x_values))
嘗試使用str(data)
查看列的數據類型。 如果您的數據很大,則有更有效的轉換方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.