Skip to main content
LibreTexts - Ukrayinska

3.3: Створення ділянок з нуля в R за допомогою базової графіки

  • Page ID
    17571
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Як ми бачили в останньому розділі, функції для створення точкових діаграм, stripcharts, boxplots, barplots та гістограми мають аргументи, які ми можемо використовувати, щоб змінити зовнішній вигляд виводу функції. Наприклад, ось повний список аргументів, доступних, коли ми використовуємо dotchart (), які керують тим, що показує графік.

    dotchart (x, мітки = NULL, групи = NULL, gdata = NULL, cex = пар («cex»), pt.cex = cex, pch = 21, gpch = 21, bg = пар («bg»), колір = par («fg»), колір = «сірий», xlim = діапазон (x [is.finite (x)]), основний = NULL, xlab = NULL, Ylab = NULL,...)

    Кожен з аргументів має значення за замовчуванням, що означає, що нам не потрібно вказувати значення для аргументу, якщо ми не хочемо змінити його значення, як ми робили, коли ми встановили pch на 19. Останній аргумент... вказує на те, що ми можемо змінити будь-який з довгого списку графічних параметрів, які контролюють те, що ми бачимо, коли ми використовуємо dotchart.

    Створення простого розсіювача за допомогою R

    Однією з найпоширеніших і найважливіших візуалізацій в аналітичній хімії є розсіювач, в якому нас цікавить зв'язок, якщо така є, між двома вимірами шляхом побудови значень для однієї змінної по осі x і значень для іншої змінної вздовж y - вісь. Для цієї вправи ми будемо використовувати деякі дані з Puget Sound Data Hoard, який дає масу та діаметр для 816 M & Ms, отриманих з 14,0-унційного мішка звичайного M&Ms, 12,7-унційного мішка арахісового M&Ms та 12,7-унційного мішка арахісового масла M&Ms Давайте прочитаємо дані в R і збережемо їх у кадрі даних з ім'я psmm_data. Ви можете завантажити копію даних за цим посиланням, зберігши її у вашому робочому каталозі.

    psmm_data = read.csv («Дані /отримати звук M&Mdata.csv»)

    Ми можемо очікувати, що зі збільшенням діаметра M & M буде і маса M & M Ми також можемо очікувати, що зв'язок між діаметром і масою може залежати від того, чи є M & Ms звичайним, арахісовим або арахісовим маслом. Так що ми можемо отримати доступ до даних для кожного типу M & M, давайте використовувати which () функція для створення векторів, які позначають номери рядків для кожного з трьох типів M & Ms.

    pb_id = який (psmm_data$ тип == «арахісове масло»)

    plain_id = який (psmm_data$ тип == «звичайний»)

    арахісовий_ідентифікатор = який (psmm_data$ тип == «арахіс»)

    Зазвичай нас цікавить, як одна змінна впливає на іншу змінну. Ми називаємо першу незалежну змінну і розміщуємо її на осі x, а останню називаємо залежною змінною і розміщуємо її на осі y. Тут ми будемо використовувати діаметр як незалежну змінну, а масу як залежну змінну. Щоб створити розсіювач для простого M&Ms, ми використовуємо графік функції (x, y), де x - дані для побудови на осі x, а y - дані для побудови на осі y.

    сюжет (x = psmm_data$ діаметр [однозначний_ідентифікатор], y = psmm_data$ маса [однозначний_ідентифікатор])

    clipboard_e04514f19f3de7052881d0273e46ddd06.png
    Малюнок\(\PageIndex{1}\): Простий розсіювач, створений за допомогою функції графіка () R.

    Налаштування графіка, створеного за допомогою R

    Хоча наш розсіювач показує, що маса простого M&M збільшується зі збільшенням його діаметра, це не особливо привабливий сюжет. Окрім вказівки x та y, функція графіка дозволяє нам передавати додаткові аргументи для налаштування нашого графіка; ось деякі з цих необов'язкових аргументів:

    type = «опція». Цей аргумент визначає, як відображаються точки; існує ряд параметрів, але найбільш корисними є «p» для точок (це типове значення), «l» для ліній без точок, «b» для обох точок і ліній, які не стосуються точок, «o» для точок і ліній, що проходять через точки, «h» для гістограмних вертикальні лінії та «s» для ступенів сходів; використовуйте «n», якщо ви хочете придушити точки.

    ПЧ = число. Цей аргумент вибирає символ, який використовується для побудови даних, з номером, присвоєним кожному символу, показаному нижче. Типовим варіантом є 1, або відкрите коло. Символи 15—20 заповнюються кольором межі символу, а символи 21—25 можуть мати колір фону, який відрізняється від межі символу. Докладніше про встановлення кольорів див. далі в цьому документі. На малюнку нижче показані різні варіанти.

    # код від http://www.sthda.com/english/wiki/r-...available-in-r
    OldPAR = пар ()
    пар (шрифт = 2, мар = с (0,5, 0, 0, 0))
    у = об (c (реп (1, 6), реп (2, 5), реп (3, 5), реп (4, 5), реп (5, 5))
    х = c (реп (1:5, 5), 6)
    ділянка (х, у, pch = 0:25, cex = 1,5, ylim = c (1, 5.5), xlim = c (1, 6.5),
    осі = FALSE, xlab = «», ylab = «», bg = «синій»)
    текст (x, y, мітки = 0:25, pos = 3)
    пар (мар = старий Par$ мар, шрифт = OldPar$Font)

    clipboard_ec1ac8be58601b49347e60dd07e01ba67.png
    Малюнок\(\PageIndex{2}\): Символи 25 pch доступні в базовій графіці R.

    lty = число. Цей аргумент визначає тип лінії для малювання; параметри: 1 для суцільної лінії (це типове значення), 2 для пунктирної лінії, 3 для пунктирної лінії, 4 для штрихової лінії, 5 для лінії з довгим тире та 6 для лінії з двома тире.

    lwd = число. Цей аргумент встановлює ширину рядка. Типовим значенням є 1, а будь-який інший запис просто масштабує ширину відносно типової; таким чином lwd = 2 подвоює ширину, а lwd = 0.5 скорочує ширину навпіл.

    bty = «варіант». Цей аргумент визначає тип коробки для малювання навколо сюжету; параметри: «o», щоб намалювати всі чотири сторони (це за замовчуванням), «l» для малювання на лівій стороні та лише нижній стороні, «7» - лише на верхній та правій стороні, «c» для малювання всіх, крім правої сторони, «u», щоб намалювати все, крім верхньої сторони, «]» намалювати всі, крім лівої сторони, і «n» опустити всі чотири сторони.

    осі = логічні. Цей аргумент вказує, чи намальовані осі (TRUE) чи ні (FALSE); типове значення TRUE.

    xlim = c (початок, кінець). Цей аргумент встановлює обмеження для осі x, замінюючи типові межі, встановлені командою plot ().

    ylim = c (початок, кінець). Цей аргумент встановлює обмеження для осі y, замінюючи типові межі, встановлені командою plot ().

    xlab = «текст». Цей аргумент визначає мітку для осі x, замінюючи типову мітку, встановлену командою plot ().

    ylab = «текст». Цей аргумент визначає мітку для осі y, замінюючи типову мітку, встановлену командою plot ().

    main = «текст». Цей аргумент визначає основний заголовок, який розміщується над графіком, замінюючи типовий заголовок, встановлений командою plot ().

    sub = «текст». Цей аргумент визначає субтитри, які розміщуються під графіком, замінюючи типові субтитри, встановлені командою plot ().

    cex = число. Цей аргумент контролює відносний розмір символів, які використовуються для побудови точок. Типовим значенням є 1, а будь-який інший запис просто масштабує розмір відносно типового; таким чином cex = 2 подвоює розмір, а cex = 0.5 скорочує розмір навпіл.

    cex.axis = число. Цей аргумент керує відносним розміром тексту, який використовується для масштабу на обох осях; докладніше див. запис вище для cex.

    cex.lab = число. Цей аргумент керує відносним розміром тексту, який використовується для мітки на обох осях; докладніше див. запис вище для cex.

    cex.main = число. Цей аргумент керує відносним розміром тексту, який використовується для основного заголовка графіка; докладніше див. запис вище для cex.

    cex.sub = число. Цей аргумент керує відносним розміром тексту, який використовується для субтитрів графіка; докладніше див. запис вище для cex.

    col = число або «рядок». Цей аргумент керує кольором символів, які використовуються для побудови точок. Доступно 657 кольорів, для яких за замовчуванням використовується «чорний» або 24. Ви можете побачити список кольорів (число і текстовий рядок), набравши colors () в консолі.

    col.axis = число або «рядок». Цей аргумент керує кольором тексту, який використовується для масштабу на обох осях; докладніше див. запис вище для col.

    col.lab = число або «рядок». Цей аргумент керує кольором тексту, який використовується для мітки на обох осях; докладніше див. запис вище для col.

    col.main = число або «рядок». Цей аргумент керує кольором тексту, який використовується для основного заголовка графіка; докладніше див. запис вище для col.

    col.sub = число або «рядок». Цей аргумент керує кольором тексту, який використовується для субтитрів графіка; докладніше див. запис вище для col.

    bg = число або «рядок». Цей аргумент встановлює колір тла для символів графіка 21—25; докладніше див. наведені вище записи для pch та col.

    Давайте використаємо деякі з цих аргументів, щоб покращити наш розсіювач, додавши певний колір до та скоригувавши розмір символів, використовуваних для побудови даних, а також додаючи заголовок та деякі більш інформативні мітки для двох осей.

    сюжет (x = psmm_data$ діаметр [звичайний_ідентифікатор], y = psmm_data$маса [plain_id], xlab = «діаметр M & Ms», ylab = «маса M & Ms», основна = «Діаметр і маса рівнини M & Ms», pch = 19, cex = 0.5, col = «синій»)

    clipboard_e460b0624a286e7f4c62b5b8762008535.png
    Малюнок\(\PageIndex{3}\): Покращена версія розсіювача з рисунка\(\PageIndex{1}\).

    Зміна існуючого графіка, створеного за допомогою R

    Ми можемо змінити існуючий графік багатьма корисними способами, такими як додавання нового набору даних, додавання опорного рядка, додавання легенди, додавання тексту та додавання набору ліній сітки; ось деякі речі, які ми можемо зробити:

    точки (x, y,.). Ця команда ідентична команді plot (), але накладає нові точки на поточному графіку замість того, щоб спочатку стирати попередній графік. Примітка: команда points () не може змінити масштаб осей; таким чином, ви повинні переконатися, що ваш початковий графік, створений за допомогою команди plot (), має обмеження по осі x і y -осі, які відповідають вашим потребам.

    аблайн (h = число,.). Ця команда додає горизонтальну лінію з y = число з кольором, типом та розміром рядка, встановленими за допомогою необов'язкових аргументів.

    аблайн (v = число,.). Ця команда додає вертикальний рядок з x = number з кольором, типом та розміром рядка, встановленими за допомогою необов'язкових аргументів.

    аблайн (b = число, а = число,.). Ця команда додає діагональну лінію, визначену нахилом (b) та y -intercept (a); колір, тип та розмір рядка задаються за допомогою необов'язкових аргументів. Як ми побачимо в розділі 8, це корисна команда для відображення результатів лінійної регресії.

    легенда (місце розташування, легенда,.). Ця команда додає легенду до поточного графіка. Місце розташування вказується одним з двох способів:

    • вказавши координати x та y для верхнього лівого кута легенди, використовуючи x = число та y = число)

    • за допомогою location = «ключове слово», де ключове слово є одним із «topleft», «top», «topright», «bottomrigh», «bottomrigh», «bottomleft» або «left»; необов'язковий аргумент inset = число переміщує легенду з поля при використанні ключового слова (він приймає значення від 0 до 1 як частка площі ділянки; типове значення 0)

    Легенда додається як вектор рядків символів (по одному для кожного елемента легенди), а будь-яке супровідне форматування, наприклад символи графіка, лінії або кольори, передаються разом як вектори однакової довжини; уважно подивіться приклад наприкінці цього розділу, щоб побачити, як працює ця команда.

    текст (розташування, мітка,.). Ця команда додає текст, вказаний «міткою», до поточного графіка. Розташування задається шляхом надання значень для x та y за допомогою x = числа та y = числа. За замовчуванням текст центрується за своїм розташуванням; щоб встановити текст так, щоб він був вирівняний по лівому краю (з чим простіше працювати), додайте аргумент adj = c (0, NA).

    сітка (холодний , світлий, світлодіодний). Ця команда додає набір ліній сітки до графіка, використовуючи колір, тип лінії та ширину лінії, визначені «col», «lty» та «lwd» відповідно.

    Ось приклад малюнка, на якому ми показуємо, як змінюється діаметр і маса в залежності від типу M&Ms, додаємо легенду, додаємо сітку та додаємо текст, який ідентифікує джерело даних. Зверніть увагу на використання функцій max і min для визначення обмежень, необхідних для відображення результатів для всіх даних.

    # визначити мінімальне і максимальне значення діаметра і маси, щоб ми могли

    # встановити обмеження для осі x та осі y, які дозволять побудувати всі дані

    xmax = макс (psmm_data$ діаметр)

    xmin = хв (psmm_data$ діаметр)

    ymax = макс (psmm_data$ маса)

    умін = хв (psmm_data$ маса)

    # створити початковий графік, використовуючи дані для простих значень M&Ms, xlim та ylim

    # Переконайтеся, що вікно графіка дозволить побудувати всі дані

    ділянка (x = psmm_data$ діаметр [звичайний_id], y = psmm_data$маса [plain_id], xlab = «діаметр M & Ms», ylab = «маса M & Ms», основна = «Діаметр і маса M & Ms», pch = 19, cex = 0,65, col = «червоний», xlim = c (xmin, xmin макс), улім = c (ymin, ymax)

    # додайте дані для арахісового та арахісового масла M&Ms за допомогою точок ()

    точки (x = psmm_data$ діаметр [арахісу_id], y = psmm_data$ маса [арахісу_id], pch = 18, кол = «коричневий», секс = 0,65)

    точки (x = psmm_data$ діаметр [pb_id], y = psmm_data$ маса [pb_id], pch = 17, col = «синій», cex = 0,65)

    # додати легенду, підказку та пояснювальний текст

    легенда (x = «верхній лівий», легенда = c («звичайний», «арахісове», «арахісове масло»), col = c («червоний», «коричневий», «синій»), pch = c (19, 18, 17), BTY = «n»)

    сітка (col = «сірий»)

    текст (x = 16,5, y = 1, мітка = «дані з Університету Puget Sound Data Hoard», cex = 0,5)

    clipboard_e495487a235081ca9983d0c1c4514a8ed.png
    Малюнок\(\PageIndex{4}\): Приклад більш інформативного розсіювача.

    Наш новий сюжет показує, що окремі M & Ms досить добре відокремлені один від одного в просторі, створеному змінними діаметр і маса, хоча кілька M&Ms зазіхають в простір, зайнятий іншими типами M & Ms., Ми також бачимо, що розподіл простих M&Ms набагато компактніше, ніж для арахісового і арахісового масла M&Ms, що має сенс, враховуючи ймовірну мінливість розмірів окремих арахісу і більш м'яку консистенцію арахісового масла.