绘图未按顺序显示标签

Plots not showing labels in order

我有以下数据框:

      BeginTime          APName
       20:04:33      wls-wilkeson17-46
       20:20:06      wls-wilkeson17-46
       21:28:01      wls-wilkeson17-46
       21:33:10      wls-wilkeson17-46
       21:48:56      wls-wilkeson17-46
       21:59:18      wls-wilkeson17-46
       21:07:19      wls-wilkeson17-47

我正在尝试像这样在 r 中绘制它:

plot(x = user_sig_all$BeginTime, y = factor(user_sig_all$APName), yaxt = "n")

然后我使用以下方法在 y 轴上绘制标签:

axis(2, at=1:7, labels=user_sig_all$APName)

我得到的图表是

如您所见,它只显示标签 1 和 2,它们是 wls-wilkeson17-46,但根据数据,它应该显示 wls-wilkeson17-47 为最高点。

谁能指出我做错了什么?

绘图后,通过如下所示循环绘制轴:

plot(x = user_sig_all$BeginTime, y = factor(user_sig_all$APName), yaxt = "n")
countt <- 1
last_lab <- user_sig_all$APName[1]

for (AP in user_sig_all$APName){
  if(countt == 1) {
    axis(2, at=countt:countt, labels=AP)
    last_lab <- AP
    countt <- countt + 1
  } else {
    if(last_lab != AP){
      axis(2, at=countt:countt, labels=AP)
      last_lab <- AP
      countt <- countt + 1
    }
  }
}

希望对您有所帮助。祝你好运:)

问题:

您可能会误解函数 axis() 中的 at 参数,它指定了所有点在 axis(1,2,3 or 4) 处的唯一位置。所以在你的例子中,Y_Axis 只有两个位置,所以 at 应该是 c(1, 2).

解决方案:

axis(2, at=c(1, length(levels(user_sig_all$APName))), labels=user_sig_all$APName)