#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()