簡體   English   中英

使用基本繪圖功能翻轉 x 和 y 軸

[英]Flip x and y axis using basic plot function

我有一個帶有級別的向量 v3:setosa versicolor virginica

當我使用基本繪圖函數繪制向量時;

plot(v3, type = "s", xlim = NULL, ylim = c(0,50), 
main = "Plot 2", ylab = 'Frequency', col = "blue")

我得到以下情節

初始圖

但我想創建的輸出如下所示:

final_plot

我知道存在某些(更優雅的)解決方案,但我想在不安裝和加載其他軟件包的情況下創建它。 我用軸嘗試了以下操作:

axis(1, at = c(0,50), labels = FALSE, tick = TRUE)
axis(2, at = levels(v3), labels = FALSE, tick = TRUE)

但R不會接受它。

感謝您提供任何意見!

看起來您正在尋找的是條形圖而不是散點圖。 假設您有這樣的數據:

數據

set.seed(321)
v3 <- sample(c("setosa", "versicolor", "virginica"), 100, replace = T)
v3
  [1] "versicolor" "versicolor" "setosa"     "setosa"     "setosa"     "versicolor" "versicolor" "setosa"    
  [9] "virginica"  "virginica"  "setosa"     "virginica"  "versicolor" "virginica"  "versicolor" "virginica" 
 [17] "setosa"     "versicolor" "virginica"  "virginica"  "versicolor" "versicolor" "virginica"  "versicolor"
 [25] "virginica"  "versicolor" "setosa"     "versicolor" "setosa"     "virginica"  "setosa"     "setosa"    
 [33] "virginica"  "versicolor" "setosa"     "virginica"  "versicolor" "setosa"     "versicolor" "setosa"    
 [41] "virginica"  "versicolor" "setosa"     "virginica"  "setosa"     "versicolor" "versicolor" "setosa"    
 [49] "setosa"     "virginica"  "virginica"  "virginica"  "setosa"     "virginica"  "versicolor" "versicolor"
 [57] "setosa"     "setosa"     "virginica"  "setosa"     "setosa"     "versicolor" "virginica"  "virginica" 
 [65] "virginica"  "setosa"     "virginica"  "versicolor" "versicolor" "versicolor" "virginica"  "versicolor"
 [73] "virginica"  "setosa"     "setosa"     "versicolor" "virginica"  "versicolor" "versicolor" "versicolor"
 [81] "versicolor" "virginica"  "setosa"     "virginica"  "setosa"     "versicolor" "virginica"  "setosa"    
 [89] "versicolor" "versicolor" "virginica"  "setosa"     "virginica"  "virginica"  "virginica"  "versicolor"
 [97] "setosa"     "virginica"  "virginica"  "setosa"

你不能做的是繪制因子水平; 您只能計算數據中出現級別的次數:您可以繪制這些頻率。 您可以通過使用table函數將向量v3制表來完成此操作。 要將條形翻轉到水平位置,您可以使用參數horiz = TRUE (這樣做還需要將標簽Frequency放在 x 軸而不是 y 軸上):

barplot(table(v3), horiz = T, main = "Plot 2", 
        xlab = 'Frequency', 
        ylab = 'Species',
        col = 'blue')

結果

生成的條形圖如下所示: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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