Построение перпендикулярных прямых / Построения циркулем и линейкой / Треугольники / Справочник по геометрии 7-9 класс
- Главная
- Справочники
- Справочник по геометрии 7-9 класс
- Треугольники
- Построения циркулем и линейкой
- Построение перпендикулярных прямых
Примеры:
1. Даны прямая и точка на ней. Построить прямую проходящую через данную точку и перпендикулярную к данной прямой.
Дано: прямая m, Mm.
Построить: МPm.
Решение:
Произвольно строим с помощью линейки прямую m и отмечаем на ней точку М.
На лучах прямой m, исходящих из точки М, с помощью циркуля откладываем равные отрезки Для этого строим окружность с центром в точке М, при этом всю окружность строить не обязательно, достаточно сделать пометки по разные стороны от точки М (смотри выделенное красным).
Затем строим две окружности с центрами в точках А и В радиуса АВ (полностью окружности строить необязательно, смотри выделенное фиолетовым и красным цветом).
Данные окружности пересекаются в двух точках, обозначим их
Докажем, что прямая МР — искомая прямая, т.е. что МPm.
Рассмотрим треугольник АРВ.
АР = ВР, т.к. по построению это радиусы одинаковых окружностей, следовательно, АРВ
2. Даны прямая и точка не лежащая на этой прямой. Построить прямую проходящую через данную точку и перпендикулярную к данной прямой.
Дано: прямая m, Mm.
Построить: МN
Решение:
Произвольно строим с помощью линейки прямую m и отмечаем точку М, не лежащую на прямой m.
Далее строим окружность с центром в данной точке М, пересекающую прямую m в двух точках, которые обозначим буквами А и В (всю окружность строить необязательно, смотри выделенное красным цветом).
Затем построим две окружности с центрами в точках
Докажем что, прямая МN — искомая, т.е. МNm.
В АМN и ВМN: АМ = АN = ВМ = ВN Отсюда следует, что отрезок МС — биссектриса равнобедренного треугольника АМВ (АМ = ВМ — радиусы) с основанием АВ, тогда по свойству равнобедренного треугольника
Поделись с друзьями в социальных сетях:
Советуем посмотреть:
Построение угла, равного данному
Построение биссектрисы угла
Построение середины отрезка
Среднее пропорциональное
Треугольник
Равенство треугольников
Первый признак равенства треугольников
Перпендикуляр к прямой
Медианы треугольника
Биссектрисы треугольника
Высоты треугольника
Равнобедренный треугольник
Свойства равнобедренного треугольника
Второй признак равенства треугольников
Третий признак равенства треугольников
Окружность
Построения циркулем и линейкой
Треугольники
Правило встречается в следующих упражнениях:
7 класс
Задание 314, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 316*, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 413, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 587, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 648, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 827, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 897, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 899, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 1146, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
Задание 1171, Атанасян, Бутузов, Кадомцев, Позняк, Юдина, Учебник
© budu5. com, 2022
Пользовательское соглашение
Copyright
Как в Gnplot построить прямую по двум точкам? — Хабр Q&A
Приветствую всех.Вчера пытался нахрапом решить задачу построения прямой по двум точкам. Есть такой файл data.txt следующего содержания:
#y1 x1 y2 x2 y3 x3
1888 4680 915 4438 660 3288
1887 4668 915 4425 662 3275
Где каждая пара столбцов — это координата двух точек. Я хочу графически решить задачу пересечениях этих прямых. И что-то с разбегу не удалось решить задачу.
Скрипт составил примерно такой:
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "result.ps"
set grid xtics ytics
set xlabel "X"
set ylabel "Z"
#set xrange [3200:3300]
#set yrange [500:700]
set style line 1 lt 1 lw 1
.
..
Если применить очевидное решение, и записать:
plot 'data.txt' using 0:1 with lines, '' using 2:3 with lines, '' using 4:5 with lines
То будут построены мааленькие отрезки, от точки до точки, которые совершенно не раскрывают сути. Раньше я решал подобную задачу составлением уравнения прямой (решением уравнения с двумя неизвестными) и писал так:
plot 0.85*x+350.35, (-0.136)*x-509.045, -0.076*x-492.6, 6*x+6652, "< echo ‘1145 -300’" with points ls 1 #Пример не отсюда, последнее - предположительная точка пересечения
Но на мой взгляд — это не самое изящное решение. Как мне кажется решение должно быть тривиальным, но я его не вижу.
Один из вариантов, который я подглядел в другом месте — это рисование решённого уравнения:
x1 = 1 # first point
y1 = 3
x2 = 2 # second point
y2 = 5
f(x) = (y2-y1)/(x2-x1)*x + y2 - x2*(y2-y1)/(x2-x1)
plot [x1:x2] f(x)
Осталось только понять, как заносить значения в x1,y1, y2, x2.
Быть может я тупил в ночи, и всё значительно проще?
P.S. Это задача поиска подземной крепости в Майнкрафт. Первая координата — точка броска ока Края, вторая — точка её падения. Точка пересечения прямых — ориентировочное местоположение крепости. Метод опробован и вполне хорошо ищет с заданной погрешностью (которая меньше размеров крепости).
Как построить график функции в Excel
Чтобы правильно построить линейный график функций в Excel необходимо выбрать точечную диаграмму с прямыми отрезками и маркерами. Естественно это не единственный, но весьма быстрый и удобный способ.
Для разного рода данных нужно использовать разные типы графиков. Убедимся в этом, разобрав практический пример с построением математического графика функций в Excel.
Построение графиков функций в Excel
Начнем из анализа и создания графика функций в Excel. Мы убедимся в том, что линейный график в Excel существенно отличается от графика линейной функции, который преподают в школе.
Линейная функция x=y имеет следующие значения: x1=0, x2=1, x3=7. Заполните таблицу этими значениями как показано на рисунке:
Выделите диапазон A1:B4 и выберите инструмент: «Вставка»-«Диаграммы»-«График»-«График с маркерами».
В результате у нас созданы 2 линии на графике, которые наложены одна сверх другой. Так же мы видим, что линии сломаны, а значит, они не соответствуют презентации школьному графику линейной функции. Излом линий, получается, по причине того, что на оси X у нас после значений: 0, 1 сразу идет значение 7 (упущены 2,3,4,5,6).
Вывод один: данный способ графического построения данных нам не подходит. А значит щелкните по нему левой кнопкой мышки (чтобы сделать его активным) и нажмите клавишу DELETE на клавиатуре, чтобы удалить его.
Как построить график линейной функции в Excel
Чтобы создать правильный график функций в Excel выберите подходящий график.
Выделите диапазон A1:B4 и выберите инструмент: «Вставка»-«Диаграммы»-«Точечная»-«Точечная с прямыми отрезками и маркерами».
Как видно на рисунке данный график содержит одинаковое количество значений на осях X и Y. По умолчанию в шаблоне данного графика цена делений оси X равна 2. При необходимости ее можно изменить. Для этого:
- наведите курсор мышки на любое значение оси X чтобы появилась всплывающая подсказка «Горизонтальная ось (значений)» и сделайте двойной щёлочек левой кнопкой мышки;
- в появившемся окне «Формат оси» выберите пункт опции: «Параметры оси»-«цена основных делений»-«фиксированное» и установите значение 1 вместо 2.
- нажмите на кнопку «Закрыть».
Теперь у нас отображается одинаковое количество значений по всем осям.
Очень важно понимать разницу в предназначениях графиков Excel. В данном примере мы видим, что далеко не все графики подходят для презентации математических функций.
Примечание. В принципе первый способ можно было-бы оптимизировать под отображение линейной функции, если таблицу заполнить всеми значениями 0-7. Но это не всегда работающее решение, особенно в том случае если вместо значений будут формулы изменяющие данные. Одним словом если нужно забить гвоздь лучше взять молоток, чем микроскоп. Несмотря на то, что теоретически гвозди можно забивать и микроскопом.
Не существует универсальных графиков и диаграмм, которыми можно отобразить любой отчет. Для каждого типа отчета наиболее подходящее то или иное графическое представление данных. Выбор зависит от того что и как мы хотим презентовать. На следующих примерах вы убедитесь, что выбор имеет большое значение. Существует даже целая наука «Инфографика», которая учит лаконично презентовать информацию с максимальным использованием графики вместо текста, насколько это только возможно.
Прямая пропорциональность y = kx свойства и график функции
Определение прямой пропорциональности
Если машина движется со скоростью 50 км/ч, пройденное расстояние (в километрах) в зависимости от времени (в часах) s = 50t. Время мы определяем как $t\geq0$. Но механика позволяет нам рассчитать не только будущее положение тела, но и прошлое, подставив в формулу $t \lt 0$ и запросто «прокрутив» время назад. Поэтому в общем случае, если движение было и остаётся постоянным, мы получаем:
$${\left\{ \begin{array}{c} — \infty \lt t\lt + \infty \\ s = 50t \end{array} \right.}$$
Можно представить себе не только отрицательное время («поход в прошлое»). Ещё проще ввести отрицательные координаты: направо идём – координата растёт, становится положительной, поворачиваем налево – уменьшается, становится отрицательной.
В задачах, связанных с экономикой, величины также могут уходить в «плюс» и «минус»: покупки/продажи, кредиты/депозиты, доходы/затраты, прибыли/убытки . Часто эти величины изменяются на какую-то постоянную сумму с течением времени.
Если обобщить формулы, описывающие подобные зависимости, то получаем:
$${\left\{ \begin{array}{c}- \infty \lt x \lt + \infty — аргумент, \quad любое \quad действительное \quad число \\ k = const ≠ 0 \quad — параметр, \quad константа \\ y = kx \quad — функция\end{array} \right.}$$
Функция такого вида называется прямой пропорциональностью.
Если $k \gt 0$, то чем больше x, тем больше y – функция возрастает.
Если $k \lt 0$, то чем больше x, тем больше y – функция убывает.
График прямой пропорциональности
Графиком прямой пропорциональности является прямая, проходящая через начало координат.
Согласно аксиоме планиметрии, через любые две точки можно провести прямую и притом только одну. Значит, положение прямой на плоскости полностью определяется двумя точками . Получаем:
Алгоритм построения графика прямой пропорциональности
- Выбрать произвольное значение аргумента $x_*\neq 0$
- Вычислить соответствующее значение функции $y_*=kx_*$
- Отметить на координатной плоскости точку $(x_*,y_* )$
- Провести прямую через начало координат (0;0) и точку $(x_*,y_* )$
Эта прямая – график прямой пропорциональности y=kx.
Например: построим график функции y = 2x
Примеры
Пример 1. Постройте графики прямых пропорциональностей.
Укажите, возрастает или убывает функция.
$k = 1 \gt 0$ – функция возрастает
$k = 3 \gt 0$ – функция возрастает
$k = \frac{1}{3} \gt 0$ – функция возрастает
$k = -1 \lt 0$ – функция убывает
$k = -2 \lt 0$ – функция убывает
е) $y = — \frac{1}{2} x$$k = -\frac{1}{2} \lt 0$ – функция убывает
Пример 2. Известно, что график прямой пропорциональности проходит через точку A(5;22). Проходит ли этот график через точки B(7;32,4)и C(9;39,6)?
Точка A определяет коэффициент пропорциональности:
$$ k= \frac{y_A}{x_A} = \frac{22}{5} = 4,4 $$
При $x = 7:y = 4,4 \cdot 7 = 30,8 \neq 32,4 \Rightarrow$ B не принадлежит графику.
При $x = 9:y = 4,4 \cdot 9 = 39,6 \Rightarrow C$ принадлежит графику.
Пример 3. Является ли прямой пропорциональностью функция, проходящая через точки:
а) A(1,5;2,75) и B(12;22)
Найдём коэффициенты пропорциональностей для каждой из точек:
$$ k_A = \frac{y_A}{x_A} = \frac{2,75}{1,5} \stackrel{\text{ × 4}}{=} \frac{11}{6} = \frac{15}{6} $$
$$ k_B = \frac{y_B}{x_B} = \frac{22}{12} = \frac{11}{6} = \frac{15}{6} $$
$k_A = k_B \Rightarrow$ прямая AB $y=1 \frac{5}{6} x$ является прямой пропорциональностью.
б) A(3;4,5) и B(5;8)
Найдём коэффициенты пропорциональностей для каждой из точек:
$$ k_A = \frac{y_A}{x_A} = \frac{2,75}{1,5} = \frac{4,5}{3} = 1,5 $$
$$ k_B = \frac{y_B}{x_B} = \frac{8}{5} = 1,6 $$
$k_A \neq k_B \Rightarrow$ прямая AB не является прямой пропорциональностью.
Показываю 3 способа как быстро построить прямой угол на местности имея любую веревку | Строю для себя
Добрый день, уважаемые гости и подписчики канала «Строю для себя»!
Ниже описаны 3 приема восстановления перпендикуляра или построения прямого угла на местности к любой прямой линии. Данные мероприятия очень важны в строительстве при построении осей на плане и при сооружении обноски для дальнейшего возведения фундаментов или стен.
Имея только отрезок любой веревки, шнурки или троса, пользуясь данными способами — вы сможете совершенно точно построить перпендикуляр.
Итак, способ №1: Равнобедренный треугольник
Определяем точку на прямой линии, к которой будем строить перпендикуляр (для наглядности — я в эту точку воткнул шампур 🙂
Отмечаем по обе стороны от него две равноудаленные точки (с помощью веревки это очень просто сделать). Теперь мы имеем три точки, которые находятся на одной прямой линии и два равных отрезка между ними (на рисунке ниже — 3 шампура).
Затем, нам достаточно определить середину веревки произвольной длины (В своем случае, для удобства, я на противоположных концах сделал петли, накинул их на колышек (шампур) и натянул веревку, тем самым разделил ее на две равные части).
Теперь, концы веревки совмещаем с двумя крайними точками и натягиваем ее за найденную середину.
Перпендикуляр готов (Свойство равнобедренного треугольника, высота которого делит основание на два равных отрезка)
Способ №2: Пересечение двух дуг
Данный способ выручает, когда у вас есть только короткая веревка. Как и в предыдущем способе, нам требуется опять же построить три точки на одной прямой, где две крайние равноудалены от центральной.
Теперь, подобно циркулю, из каждой крайней точки рисуем дуги одинакового радиуса. Точка пересечения двух дуг и будет давать нам перпендикуляр к прямой.
Схематично, это выглядит так (точка О является точкой пересечения дуг):
Способ №3: Теорема Пифагора
Наверное, это самый используемый способ, в котором применяются равные отрезки в соотношении 3:4:5. Данные отрезки могут измеряться в сантиметрах, метрах, километрах или любой произвольной длины, которую мы и будем использовать.
Для наглядности, я сделал на одной веревке 13 узлов с равными расстояниями друг от друга.
Теперь, достаточно просто туго растянуть веревку за вершины, которые отделяются между собой 3, 4 и 5 отрезками. Опять же, использую шампуры :-)))
Прямой угол построен!
На этом всё, спасибо за терпение :-)))
Если Вам было интересно, ставьте палец вверх и подписывайтесь на мой канал! Впереди много интересных тем!
Знания по геометрии на жизненных примерах и чего не хватает детям в школе?
Зная тригонометрию, можно не бегать по крыше с рулеткой
Какие деревья сажают, чтобы не откачивать яму?
Как определить высоту объекта на расстоянии?
Как рассчитать двутавр для перекрытия на прогиб и нагрузку?
Как измерить ширину реки с одного берега?
%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c%20%d0%bf%d1%80%d1%8f%d0%bc%d1%83%d1%8e — с русского на все языки
Все языкиРусскийАнглийскийИспанский────────Айнский языкАканАлбанскийАлтайскийАрабскийАрагонскийАрмянскийАрумынскийАстурийскийАфрикаансБагобоБаскскийБашкирскийБелорусскийБолгарскийБурятскийВаллийскийВарайскийВенгерскийВепсскийВерхнелужицкийВьетнамскийГаитянскийГреческийГрузинскийГуараниГэльскийДатскийДолганскийДревнерусский языкИвритИдишИнгушскийИндонезийскийИнупиакИрландскийИсландскийИтальянскийЙорубаКазахскийКарачаевскийКаталанскийКвеньяКечуаКиргизскийКитайскийКлингонскийКомиКомиКорейскийКриКрымскотатарскийКумыкскийКурдскийКхмерскийЛатинскийЛатышскийЛингалаЛитовскийЛюксембургскийМайяМакедонскийМалайскийМаньчжурскийМаориМарийскийМикенскийМокшанскийМонгольскийНауатльНемецкийНидерландскийНогайскийНорвежскийОрокскийОсетинскийОсманскийПалиПапьяментоПенджабскийПерсидскийПольскийПортугальскийРумынский, МолдавскийСанскритСеверносаамскийСербскийСефардскийСилезскийСловацкийСловенскийСуахилиТагальскийТаджикскийТайскийТатарскийТвиТибетскийТофаларскийТувинскийТурецкийТуркменскийУдмуртскийУзбекскийУйгурскийУкраинскийУрдуУрумскийФарерскийФинскийФранцузскийХиндиХорватскийЦерковнославянский (Старославянский)ЧеркесскийЧерокиЧеченскийЧешскийЧувашскийШайенскогоШведскийШорскийШумерскийЭвенкийскийЭльзасскийЭрзянскийЭсперантоЭстонскийЮпийскийЯкутскийЯпонский
Все языкиРусскийАнглийскийИспанский────────АлтайскийАрабскийАрмянскийБаскскийБашкирскийБелорусскийВенгерскийВепсскийВодскийГреческийДатскийИвритИдишИжорскийИнгушскийИндонезийскийИсландскийИтальянскийКазахскийКарачаевскийКитайскийКорейскийКрымскотатарскийКумыкскийЛатинскийЛатышскийЛитовскийМарийскийМокшанскийМонгольскийНемецкийНидерландскийНорвежскийОсетинскийПерсидскийПольскийПортугальскийСловацкийСловенскийСуахилиТаджикскийТайскийТатарскийТурецкийТуркменскийУдмуртскийУзбекскийУйгурскийУкраинскийУрумскийФинскийФранцузскийЦерковнославянский (Старославянский)ЧеченскийЧешскийЧувашскийШведскийШорскийЭвенкийскийЭрзянскийЭсперантоЭстонскийЯкутскийЯпонский
Глава 5 Базовая графика | Визуализация и анализ географических данных на языке R
Данный модуль посвящен введению в работу с графическим представлением информации в R. 3\)):
Стандартные графики
Графики (точечные и линейные) – базовый и наиболее часто используемый способ визуализации. Универсальная функция plot()
позволяет строить графики по координатам \(X\) и \(Y\), которые передаются, соответственно, в первый и второй аргумент. Если переменные \(X\) и \(Y\) не связаны друг с другом явным образом, то такой график называется диаграммой рассеяния.
Диаграммы рассеяния
Диаграмма рассеяния позволяет установить, есть ли зависимость между переменными, а также понять, как объекты дифференцируются по значениям переменных.
par(mar=c(4,4,3,2))
# Диаграмма рассеяния по экспорту и импорту:
plot(sub$МетЭкспорт,
sub$МетИмпорт,
col="red",
xlab="Экспорт, млн. долл. США",
ylab = "Импорт, млн. долл. США",
main = "Экспорт/импорт металлов и изделий из них по субъектам РФ")
В данном случае четко выделяется группа субъектов вблизи начала координат, не отличающихся интенсивным экспортом и импортом продукции металлургии, а также очевидно преобладание экспорта над импортом при больших объемах товарооборота.
При построении диаграмм рассеяния важно сохранить одинаковый масштаб по осям \(X\) и \(Y\). Чтобы обеспечить это условие, необходимо использовать параметр asp = 1
:
plot(sub$МетЭкспорт,
sub$МетИмпорт,
col="red",
xlab="Экспорт, млн. долл. США",
ylab = "Импорт, млн. долл. США",
main = "Экспорт/импорт металлов и изделий из них по субъектам РФ",
asp = 1)
Попробуйте изменить размер окна на вкладке Plots. Вы увидите, что масштаб по осям сохраняется пропорциональным.
Размер и тип значка можно изменить, используя параметры pch =
и cex =
. Размеры масштабируются параметром cex
относительно условной единицы — стандартного размер значка. Сам значок можно выбрать, используя его код в соответствии с нижеприведенным рисунком (на самом деле, вы можете выбирать произвольные символы для визуализации точек):
Типы символов R
plot(sub$МетЭкспорт,
sub$МетИмпорт,
col="red",
xlab="Экспорт, млн.
долл. США",
ylab = "Импорт, млн. долл. США",
main = "Экспорт/импорт металлов и изделий из них по субъектам РФ",
asp = 1,
pch = 2,
cex = 0.5)
plot(sub$МетЭкспорт,
sub$МетИмпорт,
col="red",
xlab="Экспорт, млн. долл. США",
ylab = "Импорт, млн. долл. США",
main = "Экспорт/импорт металлов и изделий из них по субъектам РФ",
asp = 1,
pch = 20,
cex = 1.2)
Линейные графики
Линейные графики отражают связь между зависимой и независимой переменной. Существует два способа нанесения линий на график: явное рисование линий поверх уже построенного графика с помощью функции lines()
, или создание нового линейного графика с помощью функции plot()
с дополнительным параметром type =
.
Для иллюстрации принципов работы первого способа откроем еще раз данные по объему сброса загрязненных сточных вод по морям России (млрд куб. м):
tab = read.csv2("data/oxr_vod.csv", encoding = 'UTF-8')
plot(tab$Год, tab$Каспийское, pch=20) # для начала нанесем точки
lines(tab$Год, tab$Каспийское) # теперь нанесем линии
По умолчанию функция plot()
рисует именно точки. Однако если точки не нужны, а достаточно только линий, или требуется иной подход к построению графиков, можно задать параметр type =
, который принимает следующие значения:
-
"p"
for points, -
"l"
for lines, -
"b"
for both, -
"c"
for the lines part alone of “b”, -
"o"
for both ‘overplotted’, -
"h"
for ‘histogram’ like (or ‘high-density’) vertical lines, -
"s"
for stair steps, -
"S"
for other steps, see ‘Details’ below, -
"n"
for no plotting.
Попробуем разные методы визуализации:
plot(tab$Год, tab$Карское,pch=20)
plot(tab$Год, tab$Каспийское, type="p")
plot(tab$Год, tab$Каспийское, type="l")
plot(tab$Год, tab$Каспийское, type="b")
plot(tab$Год, tab$Каспийское, type="c")
plot(tab$Год, tab$Каспийское, type="o")
plot(tab$Год, tab$Каспийское, type="h")
plot(tab$Год, tab$Каспийское, type="s")
Толщину и тип линии можно изменить, используя параметры lwd =
и lty =
соответственно. Работают они аналогично параметрам pch и cex для точечных символов. Типов линий по умолчанию в стандартной библиотеке R не так много, но в сочетании с цветовым кодированием и толщиной их оказывается вполне достаточно:
Попробуем разные варианты представления линий:
plot(tab$Год, tab$Каспийское, type="l", lwd = 2, lty = 1)
plot(tab$Год, tab$Каспийское, type="l", lwd = 3, lty = 2)
plot(tab$Год, tab$Каспийское, type="l", lwd = 1, lty = 3)
Совмещение графиков
Часто бывает необходимо совместить на одном графике несколько рядов данных. Для этого можно поступить двумя путями:
Нарисовать один ряд данных c помощью функции
plot()
, а затем добавить к нему другие ряды с помощью функцийpoints()
иlines()
.Нарисовать пустой график, а затем добавить к нему все ряды данных с помощью функций
points()
иlines()
.
При совмещении нескольких рядов данных на одном графике в первом же вызове функции
plot()
необходимо заложить диапазон значений по осям \(X\) и \(Y\), охватывающий все ряды данных. В противном случае будет учтен только разброс значений первого ряда данных, и остальные ряды могут не поместиться в поле графика.
Вариант №1 реализуется следующим образом:
plot(tab$Год,
tab$Каспийское,
pch=20,
type="o",
ylim = c(0,12),
col="red3")
# Добавим теперь на существующий график новый ряд данных, используя функции points() и lines():
points(tab$Год, tab$Карское, pch=20, col="forestgreen")
lines(tab$Год, tab$Карское, pch=20, col="forestgreen")
Обратите внимание на то, что если бы мы вызвали еще одну инструкцию
plot()
с новым рядом данных, это привело бы к построению нового графика, а не к добавлению его на существующий.
Теперь рассмотрим второй вариант. Заодно устраним недостаток предыдущего кода, в котором диапазон значений по оси \(Y\) указывался вручную.
xrange = range(tab$Год) # вычислим диапазон по оси X
yrange = range(tab$Каспийское, tab$Карское, tab$Азовское) # вычислим диапазон по оси Y
# Построим пустой график, охватывающий полный диапазон данных, и имеющий все необходимые сопроводительные элементы
plot(xrange,
yrange,
main="Объем сброса загрязненных сточных вод",
xlab="Год",
ylab="млрд.куб.м",
type = "n") # n означает, что ряд данных рисоваться не будет
# Теперь добавим на график ряды данных
points(tab$Год, tab$Каспийское, pch=20, col="red3")
lines(tab$Год, tab$Каспийское, pch=20, col="red3")
points(tab$Год, tab$Карское, pch=20, col="forestgreen")
lines(tab$Год, tab$Карское, pch=20, col="forestgreen")
points(tab$Год, tab$Азовское, pch=20, col="steelblue")
lines(tab$Год, tab$Азовское, pch=20, col="steelblue")
Функциональные параметры
Графические параметры при построении графиков на самом деле могут быть не константами, а функцией данных. Например, вы можете сказать, что размер точки при построении диаграммы рассеяния должен быть функцией отношения экспорта к импорту, что усилит наглядность отображения:
plot(okr$МетЭкспорт,
okr$МетИмпорт,
col=rgb(1,0,0,0.5),
xlab="Экспорт, млн. долл. США",
ylab = "Импорт, млн. долл. США",
main = "Экспорт/импорт металлов и изделий из них по ФО РФ (2013 г.)",
asp = 1,
pch = 20,
cex = 2+log(sub$МетИмпорт/sub$МетЭкспорт)) # размер кружка зависит от соотношения импорта и экспорта
Гистограммы
Гистограммы распределения строятся с помощью функции hist()
. Чтобы изменить ширину кармана (столбца) гистограммы, необходимо задать параметр breaks =
, а цвет задается в параметре col
:
hist(sub$ПродЭкспорт)
# Карманы будут от 0 до 3000 через 100. Заодно добавим цвет:
hist(sub$ПродЭкспорт, breaks = seq(0,3000,100), col="olivedrab3")
При построении гистограммы (как и любого другого типа графика) вы можете использовать не весь массив данных, а только его подмножество Например, можно посмотреть гистограмму только для субъектов с объемом экспорта менее 300:
hist(sub$ПродЭкспорт[sub$ПродЭкспорт < 300], col = "olivedrab3", breaks = seq(0, 300, 20))
Наконец, вы можете осуществить преобразование ряда данных перед построением гистограммы. Например, взять логарифм, чтобы проверить,похоже ли распределение на логнормальное:
hist(log(sub$ПродЭкспорт), col = "olivedrab3")
Столбчатые графики
Столбчатые графики — barplot — отображают вектор числовых данных в виде столбиков. Это простейший вид графика (наряду с dotchart), который используется для сравнения абсолютных величин. Для построения необходимо вызвать функцию barplot()
и передать ей столбец таблицы:
# Или даже просто вектор натуральных чисел от -5 до 5:
barplot(-5:5)
# Если у каждого столбика есть название,
# нужно передать вектор названий в аргумент names.arg =
barplot(okr$ХимЭкспорт, names.arg = okr$Регион)
# при наличии длинных подписей удобнее столбчатую диаграмму разместить горизонтально, используя параметр horiz = TRUE.
barplot(okr$ХимЭкспорт, names.arg = okr$Регион, horiz=TRUE)
Чтобы развернуть подписи перпендикулярно столбцам, следует использовать параметр las =
. Справка__R__говорит нам о том, что этот параметр дает следующее поведение подписей:
- 0: всегда параллельно осям (по умолчанию),
- 1: всегда горизонтально,
- 2: всегда перпендикулярно осям,
- 3: всегда вертикально.
Выберем вариант, при котором подписи всегда горизонтальны:
barplot(okr$ХимЭкспорт, names.arg = okr$Регион, horiz=TRUE, las = 1)
В данном случае очень массивные названия федеральных не умещаются в пространство графика. Можно было бы вполне убрать словосочетание “федеральный округ”. Для этого используем уже знакомую нам sub()
.
names = sub("федеральный округ", "", okr$Регион) # "" - означает пустая строка
barplot(okr$ХимЭкспорт, names.arg = names, horiz = TRUE, las = 1)
И снова содержимое не поместилось в поле графика. Проблема в том, что вокруг любого графика резервируются поля ограниченного размера для размещения подписей координат и т.д. Автоматически эти поля не пересчитываются, зарезервировать их — ваша задача.
Наберите в консоли ?par
. Откроется список всевозможных графических параметров, которые управляют компоновкой и порядком построения графиков. Эти параметры можно установить, вызвав функцию par()
. Все дальнейшие вызовы инструкций построения графиков будут учитывать установленные параметры Пролистайте страницу справки вниз и найдите параметр mar =
— он отвечает за установку полей в условных единицах. Есть также параметр mai =
, который позволяет установить поля графика в дюймах. Обратите внимание на то, что означают параметры этой функции:
# mar=c(bottom, left, top, right)
# The default is c(5, 4, 4, 2) + 0.1.
Поскольку в нашем примере проблемы возникают в левым полем, необходимо увеличить второй параметр.
margins.default = par("mar") # запишем текущее значение, чтобы восстановить его потом
par(mar = c(5, 10, 4, 2)) # увеличим поле left до 10 условных единиц
barplot(okr$ХимЭкспорт, names.
arg = names, horiz=TRUE, las = 1)
Добавим заголовок с помощью параметра main =
, а подпись единиц измерения по оси \(X\) — с помощью параметра xlab =
. Поскольку количество параметров функции уже достаточно велико, введем каждый из них с новой строчки, чтобы улучшить читаемость кода:
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1)
# Чтобы увеличить диапазон оси X, можно использовать параметр xlim = c(min, max):
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000))
Работа с цветом на столбчатых диаграммах рассмотрена ниже в отдельном разделе.
Круговые (секторные) диаграммы
Круговые диаграммы (англ. piechart) строятся с помощью функции
pie()
:
par(mar = c(5, 5, 5, 5)) # установим поля
pie(okr$ХимЭкспорт)
# вместо номеров можно использовать подписи секторов, добавив второй параметр:
pie(okr$ХимЭкспорт, names)
# в каждую метку можно добавить процент данного округа в общей массе. Для этого его нужно сначала посчитать:
percentage = 100 * okr$ХимЭкспорт / sum(okr$ХимЭкспорт)
# и округлить до 1 знака после запятой:
percentage = round(percentage, digits = 1)
Можно присоединить проценты к названиям округов, добавив обрамляющие скобки. Чтобы функция paste не добавляя пробелы между присоединяемыми строками, необходимо задать параметр sep = , передав ему пустую строку — ““:
names2=paste(names, " (", percentage, "%)", sep = "")
# Используем для аннотирования круговых секторов:
pie(okr$ХимЭкспорт, names2)
# Добавить заголовок можно также с помощью параметра main =
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте продукции химической промышленности")
Чтобы перенести часть заголовка на вторую строку, вы можете использовать управляющий символ перевода строки \n
, вставив его в требуемое место:
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте \n продукции химической промышленности")
Управляющие символы играют большое значение в программировании и используются для управления поведением текстового вывода.
Нотация
\n
называется escape-последовательностью. Помимо перевода строки, есть и другие полезные управляющие символы. Кстати, именно из-за того, что escape-последовательности начинаются с обратной косой черты (\
), при указании системных путей в функцииsetwd()
всегда следует использовать прямую косую черту (/
). Например, следующий путь не будет найдет, поскольку он содержит управляющие последовательности\n
и\t
:C:\data\tables\new
.
Наконец, при использовании секторных диаграмм важно уметь менять порядок секторов. По умолчанию сектора откладываются против часовой стрелки начиная с восточного направления. Чтобы сектора откладывались по часовой стрелке с северного направления, следует задать параметр clockwise = TRUE
.
pie(okr$ХимЭкспорт,
names2,
main = "Доля федеральных округов в экспорте \n продукции химической промышленности",
clockwise = TRUE)
Работа с цветом на круговых диаграммах рассмотрена ниже в отдельном разделе.
Цвет и прозрачность
Цвет — одно из основных графических средств, используемых на графиках и диаграммах, поэтому данная тема рассмотрена более подробно в отдельном разделе. Определить цвет можно различными способами. Во-первых, в R есть палитра предопределенных цветов, которые можно выбирать по их названию).
Список названий цветов можно посмотреть, вызвав функцию colors()
:
head(colors())
## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3"
Основной цвет любого графика или диаграмма задается параметром col =
. Это цвет (или цвета) с помощью которых будут отображаться данные. Попробуем изменить цвет графика с серого на пастельно-синий:
par(mar = c(5, 10, 4, 2)) # увеличим поле left до 10 условных единиц
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл.
США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = "steelblue")
Помимо этого вы можете задать цвет с помощью цветовых компонент в различных пространствах. Для этого вы должны быть знакомы с основами теории цвета (посмотрите презентацию UsingColorInR.pdf. Например, фиолетовый цвет в пространстве RGB можно задать с помощью функции rgb()
, смешав синюю и красную компоненты:
violet = rgb(0.4, 0, 0.6)
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = violet)
Чтобы сделать цвет полупрозрачным, есть две возможности:
- При создании нового цвета — передать в функцию
rgb()
дополнительный параметрalpha =
, который задает долю прозрачности в диапазоне от 0 до 1. - При модификации существующего цвета — вызвать функцию
adjustcolor()
с параметромalpha =
Например:
violet.
transp = adjustcolor(violet, alpha = 0.5)
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = violet.transp)
green.transp = rgb(0, 1, 0, 0.5) # появился четвертый параметр
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = green.transp)
Функция
adjustcolor()
позволяет модифицировать все компоненты цвета, не только прозрачность.
На графике типа barplot вы имеете фактически несколько переменных, которые представлены столбиками. А это означает что для них можно использовать различные цвета. Вы можете передать в параметр col =
вектор из цветов, соответствующих столбикам:
colors = c("red", "green", "blue", "orange", "yellow", "pink", "white","black")
barplot(okr$ХимЭкспорт,
names.
arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = colors)
На самом деле, такой винегрет из цветов на столбчатых диаграммах использовать не принято. Но вы должны понимать, что при необходимости можно поменять цвет отдельно выбранных столбиков. Например, мы можем показать красным цветом Центральный и Приволжский округа, которые являются лидерами по экспорту продукции химической промышленности:
colors = rep("gray", 8) # сделаем 8 серых цветов
colors[2] = "red"
colors[7] = "red"
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz = TRUE,
las = 1,
xlim = c(0,12000),
col = colors)
Еще одна интересная особенность использования цвета заключается в том, что количество указанных цветом может не совпадать с количеством рядов данных. Вы можете указать 2 или 3 цвета, и они будут циклически повторяться при визуализации данных:
colors=c("gray","steelblue")
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz =TRUE,
las = 1,
xlim = c(0, 12000),
col = colors)
Наконец, вещь, которой совершенно необходимо уметь пользоваться при работе с цветом в R — это цветовые палитры. Палитры чрезвычайно удобны, когда необходимо сгенерировать множество цветов, зная лишь основные оттенки. Для этого нужно создать палитру, используя функцию colorRampPalette()
:
# задаем 2 опорных цвета: черный белый
palet=colorRampPalette(c("black","white"))
# и автоматически генерируем 8 цветов между ними:
colors=palet(8)
# используем их для отображения:
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл.
США",
horiz = TRUE,
las = 1,
xlim = c(0, 12000),
col= colors)
# вы можете включить в палитру произвольное количество цветов:
palet=colorRampPalette(c("steelblue","white","purple4"))
colors=palet(8)
barplot(okr$ХимЭкспорт,
names.arg = names,
main = "Экспорт продукции химической промышленности",
xlab = "млн долл. США",
horiz=TRUE,
las = 1,
xlim = c(0, 12000),
col= colors)
В R существует множество стандартных палитр, их список можно найти в справке и документации. Наиболее полезные из них:
Например, вы можете изменить цвета диаграммы, взяв их из одной из палитр или выбрав случайным образом из полной палитры цветов, используя функцию sample()
:
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте \n продукции химической промышленности", col=rainbow(length(names2)))
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте \n продукции химической промышленности", col=sample(colors(),5))
Более богатый набор палитр можно найти в библиотеке RColorBrewer
, которая представляет собой интерпретацию палитр, доступных на сайте colorbrewer2. org
library(RColorBrewer) # Откроем библиотеку RColorBrewer:
display.brewer.all() # Посмотрим, какие в ней имеются палитры
К каждой из этих палитр можно обратиться по названию с помощью функции brewer.pal()
. Поскольку нам необходимы цвета для категориальных данных, следует использовать палитры из средней части (Set3 — Accent)
# выберем цвета из палитры Set2 по количеству секторов в круге:
colors = brewer.pal(length(names2),"Set1")
# И используем их при визуализации
par(mar = c(5, 5, 5, 5)) # установим поля
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте \n продукции химической промышленности", col=colors)
# Попробуем палитру Accent:
pie(okr$ХимЭкспорт, names2, main = "Доля федеральных округов в экспорте \n продукции химической промышленности", col=brewer.pal(length(names2),"Accent"))
Настройки отображения
Графические параметры
Изменять размеры элементов графика можно независимо друг от друга, используя следующие параметры:
-
cex
— общий масштаб элементов на графике -
cex.
— масштаб подписей координат на осиaxis
-
cex.lab
— масштаб подписей названий осей -
cex.main
— масштаб заголовка графика -
cex.sub
— масштаб подзаголовка графика -
cex.names
— масштаб подписей факторов (для некоторых типов диаграмм)
Например:
plot(tab$Год,
tab$Каспийское,
pch=20,
type="o",
ylim = c(0,12),
col="red3",
main="Объем сброса загрязненных сточных вод",
xlab="Год",
ylab="млрд.куб.м",
cex.axis=0.8,
cex.lab=0.7,
cex.main=0.9,
cex = 0.8)
points(tab$Год, tab$Карское, pch=20, col="forestgreen",cex = 0.8)
lines(tab$Год, tab$Карское, pch=20, col="forestgreen")
points(tab$Год, tab$Азовское, pch=20, col="steelblue",cex = 0.8)
lines(tab$Год, tab$Азовское, pch=20, col="steelblue")
Аналогично происходит тонкая настройка цвета:
-
col
цвет графика -
col.
цвет подписей координатaxis
-
col.lab
цвет названий осей -
col.main
цвет заголовка -
col.sub
цвет подзаголовка -
fg
цвет элементов переднего плана (оси, рамка и т.д.) -
bg
цвет фона графика (background)
plot(tab$Год,
tab$Каспийское,
pch=20,
type="o",
ylim = c(0,12),
col="red3",
main="Объем сброса загрязненных сточных вод",
xlab="Год",
ylab="млрд.куб.м",
cex.axis=0.8,
cex.lab=0.7,
cex.main=0.9,
col.lab = "grey50",
fg = "grey40")
points(tab$Год, tab$Карское, pch=20, col="forestgreen")
lines(tab$Год, tab$Карское, pch=20, col="forestgreen")
points(tab$Год, tab$Азовское, pch=20, col="steelblue")
lines(tab$Год, tab$Азовское, pch=20, col="steelblue")
Разметка осей, рамка, сетка координат и произвольные линии
По умолчанию R подбирает оптимальный с точки зрения него шаг разметки осей, в зависимости от разброса значений по осям \(X\) и \(Y\), а также размеров графического устройства, на котором производится рисование. Изменяя размер окна прорисовки, вы получите различную разметку осей.
В то же время, часто возникает желание (или необходимость) самостоятельно управлять шагом разметки сетки. Для этого необходимо:
- Вызвать функцию
plot()
, передав ей дополнительно параметрaxes = FALSE
(убирает при рисовании обе оси) или один из параметровxaxt="n"
/yaxt="n"
(убирают оси \(X\) и \(Y\) соответственно) - Вызвать столько раз функцию
axis()
, сколько вы хотите нарисовать осей, передав ей параметры для рисования каждой оси.
Функция axis()
принимает следующие параметры:
-
side
— сторона графика, на которой будет нарисована ось (1=bottom
,2=left
,3=top
,4=right
) -
at
— вектор значений, в которых должны быть нарисованы метки оси -
labels
— вектор подписей, которые будут нарисованы в местоположениях, указанных в параметреat
.Этот параметр можно пропустить, если подписи совпадают с местоположениями меток
-
pos
— координата, вдоль которой будет нарисована ось -
lty
— тип линии -
col
— цвет линии и меток -
las
— расположение подписей параллельно (\(0\)) или перпендикулярно (\(2\)) оси -
tck
— длина метки относительно размера графика. Отрицательные значения дают метки, выходящие за пределы графика. положительные — внутрь графика. \(0\) убирает метки, \(1\) рисует линии сетки.
При ручном построении осей полезно сразу же нарисовать рамку вокруг графика, используя функцию box()
.
Например:
plot(tab$Год,
tab$Каспийское,
type = "l",
axes = FALSE)
axis(side = 1,
at = seq(min(tab$Год), max(tab$Год), 1),
tck = -0.02,
labels = FALSE) # разметим ось X через 1 год, но рисовать подписи не будем
axis(side = 1,
at = seq(min(tab$Год), max(tab$Год), 3), # а подписи расставим через 3 года
tck = 0) # но рисовать метки не будем
# разметим ось Y через 1 млрд куб.
м., округлив предварительно минимальное и максимальное значение до ближайшего целого снизу и сверху соответственно
axis(side = 2,
at = seq(floor(min(tab$Каспийское)), ceiling(max(tab$Каспийское)), 1),
tck = -0.02)
box() # добавим рамку для красоты
Для размещения сетки координат существует функция grid(nx = NULL, ny = nx, col = "lightgray", lty = "dotted", lwd = par("lwd"), equilogs = TRUE)
. Как видно из набора ее параметров, сетка определяется количеством линий в горизонтальном и вертикальном направлении. Это не всегда бывает удобно, поскольку как правило мы хотим задать шаг сетки конкретной величины. По умолчанию, однако, линии сетки выбираются автоматически, как и метки:
plot(tab$Год,
tab$Каспийское,
type = "l",
col = "red")
grid()
Вы, разумеется, можете поменять их количество, однако R не будет за вас согласовывать шаг сетки и шаг меток осей, поскольку метки генерируются на стадии рисования plot()
или axis()
и не запоминаются.
plot(tab$Год,
tab$Каспийское,
type = "l",
col = "red")
grid(10, 5)
Функция grid()
на самом деле является оберткой функции abline()
, которая позволяет рисовать произвольные линии на графике. Дана функция предоставляет следующие возможности построения линий и серий линий:
-
a, b
— коэффициенты уравнения \(y = ax + b\). Таким образом можно определить только одну линию. -
coef
— принимает вектор из двух значений, которые интерпретируются какa
иb
. То есть, это альтернативная форма записи предыдущего случая. -
h
— значение (значения) координат \(y\) для горизонтальной линии (серии горизонтальных линий). То есть, вы можете передать в этот параметр как одиночное значение, так и вектор значений. В зависимости это этого нарисуется одна горизонтальная линия или серия горизонтальных линий. -
v
— значение (значения) координат \(x\) для вертикальной линии (серии вертикальных линий).3\) по оси \(Y\). Для этого выполним следующую последовательность действий:
plot(tab$Год, tab$Каспийское, type="n") # режим 'n' позволяет ничего не рисовать, но заложить поле графика в соответствии с данными, указанными в параметрах x и y # Вычисляем линии сетки xlines = seq(min(tab$Год), max(tab$Год), 1) ylines = seq(ceiling(min(tab$Каспийское)), floor(max(tab$Каспийское)), 1) # Рисуем линии сетки abline(h = ylines, v = xlines, col = "lightgray") # Рисуем график lines(tab$Год, tab$Каспийское, col="red3") points(tab$Год, tab$Каспийское, pch = 20, col="red3") # Выделяем значение 10 по оси Y: abline(h = 10, col = "blue", lwd = 2) # Рисуем дополнительно рамку, т.к. сетку координат мы рисовали после графика box()
Аннотации данных (текст на графике)
Аннотации данных добавляются на график с помощью функции
text()
. В качестве трех обязательных аргументов ей необходимо передать координаты точек размещения текста, и вектор подписей.Также полезным будет указать параметр
pos=
, отвечающий за размещение аннотации относительно точки. Значенияpos
, равные 1, 2, 3 и 4, соответствуют размещению снизу, слева, сверху и справа от точки:text(tab$Год, tab$Каспийское, labels = tab$Каспийское, cex = 0.75, pos = 3)
К сожалению, стандартный механизм размещения аннотаций пакета
graphics
не обладает возможностью устранения конфликтов подписей. Однако это возможно для графиков, построенных с помощью библиотек lattice и ggplot2. Для этого можно воспользоваться пакетом directlabels или ggrepel.Легенда
Легенда к графику размещается с помощью функции
legend()
. Эта функция принимает несколько аргументов, включая: местоположение, заголовок, названия элементов, графические параметры. Местоположение может быть задано координатами \((x,y)\) в системе координат графика, но удобнее пользоваться следующими предопределенными константами:"bottomright"
,"bottom"
,"bottomleft"
,"left"
,"topleft"
,"top"
,"topright"
,"right"
,"center"
.Чтобы в легенде появились точки, необходимо задать параметр
pch=
. Для линейной легенды, следует задать, соответственно, параметрlty =
и/илиlwd =
. Каждый из этих параметров должен быть вектором по количеству элементов легенды:par(mar = margins.default) # Найдем ограничивающий прямоугольник вокруг всех рядов данных xrange = range(tab$Год) yrange = range(tab$Каспийское, tab$Карское, tab$Азовское) # Построим пустой график с разметкой осей и всеми заголовками plot(xrange, yrange, type="n", main="Объем сброса загрязненных сточных вод", xlab="Год", ylab="млрд.куб.м", cex.axis=0.8, cex.lab=0.7, cex.main=0.9, col.lab = "grey50", fg = "grey40") # Добавим на график сетку координат grid() # Добавим на график данные points(tab$Год, tab$Каспийское, pch=20, col="red3") lines(tab$Год, tab$Каспийское, pch=20, col="red3") points(tab$Год, tab$Карское, pch=20, col="forestgreen") lines(tab$Год, tab$Карское, pch=20, col="forestgreen") points(tab$Год, tab$Азовское, pch=20, col="steelblue") lines(tab$Год, tab$Азовское, pch=20, col="steelblue") # Определим положение, названия и цвета: main = "Море" location = "topright" labels = c("Каспийское", "Карское", "Азовское") colors = c("red3", "forestgreen", "steelblue") # Если цвет передать в параметр fill, то по умолчанию # нарисуются цветовые плашки: legend(location, labels, title = main, fill=colors)
pts = c(20, 20, 20) # каждый элемент показывается точкой типа 20 lns = c(1, 1, 1) # каждый элемент показывается линией толщиной 1 # теперь посмотрим на легенду (она нарисуется поверх старой) legend(location, labels, title = main, col = colors, pch = pts, lwd = lns)
Более подробно с разнообразными опциями размещения легенды на графике вы можете познакомиться, набрав в консоли команду
?legend
.Как рисовать линии в Photoshop
Чтобы нарисовать линию в Photoshop, можно использовать множество различных инструментов. В зависимости от типа линии, которую вы хотите создать, некоторые параметры могут оказаться более полезными, чем другие. Три лучших варианта для создания линий — это инструмент «Линия», инструмент «Перо» или инструмент «Кисть».
Инструмент «Линия» — самый простой способ создания прямых линий в Photoshop. Доступ к нему можно получить в инструментах формы (U), и его легко настроить с помощью настроек обводки и заливки цветом.Выбрав инструмент «Линия», просто перетащите его на холст, чтобы создать новую линию.
Теперь это только верхушка айсберга с инструментом «Линия» и созданием линий в Photoshop. Давайте более подробно рассмотрим этот инструмент, а также другие варианты, которые у вас есть в вашем распоряжении.