Как сделать гистограмму в r studio
В этой части пошагового руководства вы ознакомитесь с методами создания графиков и карт с использованием R на основе данных SQL Server. В рамках этого руководства вы создадите простую гистограмму, а затем разработаете более сложную диаграмму-карту.
Предварительные условия
Для этого этапа требуется продолжение сеанса R из предыдущих этапов этого пошагового руководства. В нем используются строки подключения и объекты источников данных, созданные на этих этапах. Для запуска скрипта используются следующие средства и пакеты.
- Rgui.exe для выполнения команд R
- Management Studio для выполнения T-SQL
- googMap
- Пакет ggmap
- Пакет mapproj
Создание гистограммы
Создайте первую диаграмму с помощью функции rxHistogram. Функция rxHistogram предоставляет возможности, аналогичные возможностям пакетов R с открытым исходным кодом, однако она может работать в контексте удаленного выполнения.
Изображение возвращается в графическом устройстве R вашей среды разработки. Например, в RStudio откройте окно Plot (График). В cредства R для Visual Studioоткрывается отдельное графическое окно.
Ваш график выглядит иначе?
Это связано с тем, что inDataSource использует только первые 1000 строк. Поскольку упорядочение строк с помощью предложения TOP является недетерминированным без предложения ORDER BY, данные и полученный на их основе график могут отличаться. Конкретно это изображение было создано с использованием приблизительно 10 000 строк данных. Мы рекомендуем поэкспериментировать с разным числом строк, чтобы получить разные графики, и обратить внимание на то, как долго возвращаются результаты в вашей среде.
Создание диаграммы-карты
Как правило, серверы баз данных блокируют доступ к Интернету. Из-за этого могут возникнуть неудобства при работе с пакетами R, которые скачивают карты и другие изображения для построения графиков. Тем не менее, есть обходное решение для этой ситуации, которое может быть полезно при создании собственных приложений. Как правило, вы можете создать представление карты в клиенте, а затем наложить на карту точки, сохраненные в качестве атрибутов в таблице SQL Server.
Определите функцию, создающую объект графика R. Пользовательская функция mapPlot создает точечную диаграмму, на которой представлено количество поездок с каждого места посадки. Она использует пакеты ggplot2 и ggmap, которые уже должны быть установлены и загружены.
- Функция mapPlot принимает два аргумента: имеющийся объект данных, который вы определили ранее с помощью функции RxSqlServerData, и представление карты, переданное из клиента.
- В строке, начинающейся с переменной ds, функция rxImport используется для загрузки в память данных из ранее созданного источника inDataSource. (Этот источник содержит только 1000 строк; если вы хотите создать карту с использованием большего количества точек данных, выберите другой источник.)
- При использовании функций R с открытым исходным кодом данные должны быть загружены в кадры данных в локальной памяти. Тем не менее, вызов функции rxImport позволяет осуществлять выполнение в контексте удаленных вычислений.
Измените контекст вычислений на локальный и загрузите библиотеки, необходимые для создания карт.
В переменной gc хранится набор координат площади Таймс-сквер в Нью-Йорке.
Строка, начинающаяся с googmap , создает карту с указанными координатами в центре.
Перейдите в контекст вычислений SQL Server и преобразуйте результаты для просмотра. Для этого необходимо упаковать функцию построения графика в rxExec, как показано ниже. Функция rxExec входит в состав пакета RevoScaleR и поддерживает выполнение произвольных функций R в удаленном контексте вычислений.
Данные карты в googMap передаются в виде аргумента в функцию mapPlot, выполняемую удаленно. Это связано с тем, что карты были созданы в локальной среде и их необходимо передать в функцию, чтобы создать график в контексте SQL Server.
При выполнении строки, начинающейся с plot , преобразованные для просмотра данные сериализуются в локальную среду R, чтобы вы могли просматривать их в своем клиенте R.
Если вы используете SQL Server на виртуальной машине Azure, на этом этапе может появиться ошибка. Она возникает в том случае, если заданное по умолчанию в Azure правило брандмауэра блокирует доступ кода R к сети. Дополнительные сведения об устранении этой ошибки см. в статье Установка служб машинного обучения (R) на виртуальной машине Azure.
На следующем рисунке показана итоговая диаграмма. Места посадки обозначены на карте красными точками. Изображение может отличаться в зависимости от того, сколько мест содержится в вашем источнике данных.
Для создания переменной X использована функция rnorm() (от random - случайный, и norm - нормальный). Используя генератор случайных чисел, эта функция формирует нормально распределенные совокупности с заданными размером ( n ), средним значением ( mean ) и стандартным отклонением ( sd ).
Изобразить значения переменной X в виде гистограммы очень просто:
hist() автоматически выбирает количество столбцов для отображения на графике, а также создает названия осей и заголовок графика. Такого рисунка, получаемого с использованием автоматических настроек, может оказаться вполне достаточно (например, при проведении быстрого разведочного анализа данных). Однако часто требуется его дополнительная доработка.
Прежде всего, важно обратить внимание на размер шага, используемого для разбиения данных на классы при построении гистограммы. В приведенном выше примере программа автоматически разбила значения переменной X на классы с шагом 5. Однако такое грубое разбиение может замаскировать истинные свойства анализируемой совокупности. Для более детального изучения этих свойств следует выбрать более дробное деление данных на классы (т.е. использовать меньший шаг). Сделать это позволяет аргумент breaks (разломы) функции hist() :
По умолчанию функция hist() отображает по оси ординат частоты встречаемости для каждого класса значений X . Такое поведение функции можно изменить, придав аргументу freq (от frequency - частота) значение FALSE . В этом случае ось ординат будет отражать плотность вероятности каждого класса так, что суммарна площадь под гистограммой составит 1:
В приведенном примере выбран светло-голубой цвет столбцов (" lightblue ").
В ряде случаев, в частности при небольшом числе наблюдений, гистограммы могут давать неверное представление о свойствах совокупности - просто из-за небольшого числа редко расположенных столбцов, например:
плотности вероятности. Оценка плотности вероятности выполняется при помощи функции density() , которую можно применить в качестве аргумента функции plot() для графического изображения результата:
bw (от bandwidth - полоса пропускания), например:
Обратите внимание на дополнительные аргументы, использованные вместе с функцией hist() : xlab и ylab - для создания названий осей, и main - для создания заголовка рисунка. Аналогично, в качестве управляющих аргументов функции lines() были применены аргументы col (для установки цвета линии) и lwd (для установки толщины линии). Эти же аргументы мы использовали ранее при построении графиков c помощью функции plot() (см. здесь и здесь). Приведенные примеры показывают универсальность этих и целого ряда других аргументов, управляющих поведением plot() , hist() и других графических функций R высокого уровня.
Гистограмма является отличным способом отображения категориальных переменных на оси X. Этот тип графика обозначает два аспекта на оси Y.
- Первый подсчитывает количество вхождений между группами.
- Второй показывает итоговую статистику (мин, макс, среднее и т. Д.) Переменной по оси у.
Вы будете использовать набор данных mtcars со следующими переменными:
- цил: номер цилиндра в машине. Числовая переменная
- утра: тип трансмиссии. 0 для автоматического и 1 для ручного. Числовая переменная
- миль на галлон: миль на галлон. Числовая переменная
В этом уроке вы узнаете
Как создать гистограмму
Чтобы создать график в R, вы можете использовать библиотеку ggplot, которая создает готовые к публикации графики. Основной синтаксис этой библиотеки:
В этом уроке вас интересует геометрический объект geom_bar (), который создает гистограмму.
Гистограмма: количество
Ваш первый график показывает частоту цилиндров с помощью geom_bar (). Код ниже является самым основным синтаксисом.
- Вы передаете набор данных mtcars в ggplot.
- Внутри аргумента aes () вы добавляете ось X в качестве факторной переменной (cyl)
- Знак + означает, что вы хотите, чтобы R продолжал читать код. Это делает код более читабельным, разбивая его.
- Используйте geom_bar () для геометрического объекта.
Вывод:
Примечание : убедитесь, что вы преобразовали переменные в фактор, иначе R рассматривает переменные как числовые. Смотрите пример ниже.
Настроить график
Для настройки графика можно передать четыре аргумента:
Изменить цвет баров
Вы можете изменить цвет баров. Обратите внимание, что цвета баров все похожи.
- Цвета столбцов контролируются отображением aes () внутри геометрического объекта (т.е. не в ggplot ()). Вы можете изменить цвет с помощью аргументов заполнения. Здесь вы выбираете цвет коралла.
Вывод:
Вы можете использовать этот код:
чтобы увидеть все цвета, доступные в R. Есть около 650 цветов.
Изменить интенсивность
Вы можете увеличить или уменьшить интенсивность цвета баров
- Чтобы увеличить / уменьшить интенсивность полосы, вы можете изменить значение альфа. Большая альфа увеличивает интенсивность, а низкая альфа уменьшает интенсивность. альфа варьируется от 0 до 1. Если 1, то цвет такой же, как палитра. Если 0, цвет белый. Вы выбираете альфа = 0,1.
Вывод:
Цвет по группам
Вы можете изменить цвета столбцов, то есть один цвет для каждой группы. Например, переменная cyl имеет три уровня, тогда вы можете построить гистограмму тремя цветами.
- Заполнение аргумента внутри aes () позволяет изменить цвет бара. Вы меняете цвет, устанавливая переменную fill = x-axis. В вашем примере, переменная оси X является цил; заполнить = коэффициент (цил)
Вывод:
Добавить группу в барах
Вы можете дополнительно разделить ось Y на основе другого факторного уровня. Например, вы можете подсчитать количество автоматических и механических коробок передач в зависимости от типа цилиндра.
Вы будете действовать следующим образом:
- Шаг 1: Создайте фрейм данных с набором данных mtcars
- Шаг 2: Пометьте переменную am для auto для автоматической коробки передач и man для механической коробки передач. Преобразуйте am и cyl как фактор, чтобы вам не приходилось использовать factor () в функции ggplot ().
- Шаг 3: Постройте гистограмму для подсчета количества передач по цилиндрам
У вас есть готовый набор данных, вы можете построить график;
- Ggpplot () содержит данные набора данных и aes ().
- В aes () вы включаете переменную x-axis и какую переменную требуется заполнить бар (т.е. am)
- geom_bar (): создать гистограмму
Вывод:
Отображение заполнит панель двумя цветами, по одному для каждого уровня. Легко изменить группу, выбрав другие факторные переменные в наборе данных.
Вы можете визуализировать планку в процентах вместо общего количества.
Вывод:
Бок о бок
Легко построить гистограмму с групповой переменной рядом.
- position = position_dodge (): явно говорит, как расположить бары
Вывод:
Гистограмма
Во второй части учебника по гистограмме вы можете представить группу переменных со значениями по оси Y.
- Шаг 1: Создайте новую переменную со средней милей на галлон за цилиндр
- Шаг 2: Создайте базовую гистограмму
- Шаг 3: Измените ориентацию
- Шаг 4: Измените цвет
- Шаг 5: измените размер
- Шаг 6: Добавьте метки на график
Шаг 1) Создайте новую переменную
Вы создаете фрейм данных с именем data_histogram, который просто возвращает среднее количество миль на галлон по количеству цилиндров в автомобиле. Вы называете эту новую переменную mean_mpg и округляете среднее с двумя десятичными знаками.
Шаг 2) Создайте базовую гистограмму
Вы можете построить гистограмму. Он не готов общаться для доставки клиенту, но дает нам представление о тенденции.
Вывод:
Шаг 3) Измените ориентацию
Вы меняете ориентацию графика с вертикальной на горизонтальную.
- Вы можете контролировать ориентацию графа с помощьюordin_flip ().
Вывод:
Шаг 4) Измените цвет
Вы можете различать цвета столбцов в соответствии с уровнем фактора переменной оси X.
- Вы можете построить график по группам с помощью отображения fill = cyl. R автоматически заботится о цветах, основываясь на уровнях переменной цил
Вывод:
Шаг 5) Измените размер
Чтобы график выглядел красивее, вы уменьшаете ширину полосы.
- Аргумент width внутри geom_bar () управляет размером бара. Большее значение увеличивает ширину.
- Обратите внимание, вы храните график в переменной graph. Вы делаете это, потому что следующий шаг не изменит код переменной graph. Это улучшает читаемость кода.
Вывод:
Шаг 6) Добавьте метки на график
Последний шаг состоит в добавлении значения переменной mean_mpg в метку.
- Функция geom_text () полезна для контроля эстетики текста.
- label =: добавить метку внутри столбцов
- mean_mpg: используйте переменную mean_mpg для метки
Вывод:
Резюме
Гистограмма полезна, когда ось X является категориальной переменной. Ось Y может представлять собой либо счет, либо сводную статистику. В таблице ниже показано, как управлять гистограммой с помощью ggplot2:
В этой статье будет продемонстрировано, как создать гистограмму с помощью ggplot в R.
Используйте geom_histogram , чтобы создать гистограмму с ggplot в R
Простая гистограмма строится с помощью функции geom_histogram , и для построения графика требуется только одна переменная. В данном случае мы используем набор данных diamonds , а именно столбец price из него, чтобы указать отображение на ось абсцисс. geom_histogram автоматически выбирает размер бина и масштабные точки данных, если это явно не передано пользователем.
Следующий пример расширяет предыдущий фрагмент кода, чтобы указать точки останова на каждой оси с помощью функций scale_x_continuous и scale_y_continuous . Параметр breaks используется для передачи значений, сгенерированных функцией seq . Параметры seq интуитивно понятны для чтения, поскольку они образуют шаблон - (from, to, by) . Мы также используем функцию grid.arrange для отображения двух графиков бок о бок для визуального сравнения.
Используйте параметры fill , colour и size для изменения визуализации гистограммы в R
Общие параметры, такие как fill , colour и size , могут использоваться для изменения визуального представления элементов графика. Параметр fill определяет цвет, которым заполняются ячейки; Напротив, colour используется для штрихов корзины. size принимает числовое значение для обозначения ширины штрихов корзины. Также обратите внимание, что следующий фрагмент кода добавляет параметр name к обеим осям.
Используйте facet_wrap для построения нескольких гистограмм, сгруппированных по категориям в R
Функцию facet_wrap можно использовать для рисования нескольких гистограмм на основе набора переменных. Набор данных diamonds предоставляет достаточно измерений для выбора переменных из одного из его столбцов. Например, мы выбрали столбец cut , чтобы отображать разные гистограммы price для каждого типа. Функцию theme можно также комбинировать с geom_histogram , чтобы указать пользовательское форматирование для элементов графика.
Читайте также: