Построение линейного графика в ggplot с небольшим набором данных

#r #plot #ggplot2

#r #построение #ggplot2

Вопрос:

Я рассчитал следующий кадр данных для максимального времени отклика сервера с заранее определенным количеством одновременных подключений:

 > print(summary_data)    
    max     no_of_threads
    1.1801799   10
    1.0883594   20
    0.9556356   30
    0.9130625   40
    3.2130118   50
    1.1573432   60
  

Когда я строю этот фрейм данных с помощью ggplot, используя geom_bars (), я получаю график со столбцами, как и предполагалось:

 h <- ggplot(summary_data, aes(no_of_threads, max))
h   geom_bar()
  

Однако, когда я создаю линию на этом графике с помощью geom_line (), ggplot генерирует пустой график без строки в нем:

 h   geom_line()
  

Как отобразить мой небольшой набор данных в виде линейного графика с помощью ggplot?

Комментарии:

1. Интересно. Я получаю ошибку с первым и ожидаемый график со вторым. На Mac, в R64.app, R2.13.1, ggplot2_0.8.9. Может быть, ваш объект имеет другую структуру? Почему бы вместо этого не опубликовать dput(summary_data)?

2. @DWin — принятый ответ является правильным. Итоговые данные вычисляются из журналов, и столбцы no_of_threads на самом деле являются коэффициентом, а не числовой переменной. Это привело меня к такому поведению.

Ответ №1:

Единственный способ, которым я смог воспроизвести вашу проблему, заключался в том, что no_of_threads был фактором, а не числовой или целочисленной переменной. Попробуйте преобразовать его в числовой:

 summary_data$no_of_threads <- as.numeric(as.character(summary_data$no_of_threads))
  

Редактировать

Думаю, я добавлю (предполагая, что я прав относительно причины проблемы), что переключение туда и обратно на самом деле не доставляет хлопот. Оставьте переменную числовой, и когда вы захотите использовать geom_bar , просто выполните приведение там:

 ggplot(summary_data, aes(factor(no_of_threads), max))   geom_bar()