使用基本绘图函数翻转 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")

我得到以下情节

但我想创建的输出如下所示:

我知道存在某些(更优雅的)解决方案,但我想在不安装和加载额外包的情况下创建它。我用轴尝试了以下操作:

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')

结果:

生成的条形图如下所示: