簡體   English   中英

使用ggplot2將軸值重新排序為升值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM