СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Практическое занятие №54

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Практическое занятие №54»

Практическое занятие №54 (1И)

Тема: Библиотека Matplotlib. Понятие рисунка в Matplotlib

Цель работы: формирование теоретических и практических навыков работы на языке программирования Python

Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет

Время работы 2 часа

Ход работы

import matplotlib.patches
import matplotlib.path
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D


def drawLine(axes):
    """
    Рисование линии
    """
    x0 = 0
    y0 = 0

    x1 = 1
    y1 = 0.5

    x2 = 0.5
    y2 = 1.0

    line = Line2D([x0, x1, x2], [y0, y1, y2], color="k")
    axes.add_line(line)

    plt.text(0.5, 1.1, "Line2D", horizontalalignment="center")


def drawCircles(axes):
    """
    Рисование окружностей
    """
    circle1 = matplotlib.patches.Circle((0, 0), radius=0.1, fill=True)
    axes.add_patch(circle1)
    plt.text(0, 0.2, "Circle", horizontalalignment="center")

    circle2 = matplotlib.patches.Circle((0, 0),
                                        radius=1.5,
                                        fill=False,
                                        color="r")
    axes.add_patch(circle2)
    plt.text(0, 1.55, "Circle", horizontalalignment="center")


def drawArrow(axes):
    """
    Рисование стрелки
    """
    arrow_x0 = -1.0
    arrow_y0 = 0.5
    arrow_dx = 1
    arrow_dy = 0.5

    arrow = matplotlib.patches.Arrow(arrow_x0,
                                     arrow_y0,
                                     arrow_dx,
                                     arrow_dy,
                                     width=0.2,
                                     color="g")
    axes.add_patch(arrow)
    plt.text(-0.5, 1.0, "Arrow", horizontalalignment="center")


def drawArc(axes):
    """
    Рисование дуги
    """
    arc_x = 0
    arc_y = 0
    arc_width = 1
    arc_height = 1
    arc_theta1 = 270
    arc_theta2 = 360

    arc = matplotlib.patches.Arc((arc_x, arc_y),
                                 arc_width,
                                 arc_height,
                                 theta1=arc_theta1,
                                 theta2=arc_theta2)
    axes.add_patch(arc)
    plt.text(0.6, -0.3, "Arc", horizontalalignment="center")


def drawPolygons(axes):
    """
    Рисование многоугольника
    """
    polygon_1 = matplotlib.patches.Polygon([(0, -0.75),
                                            (0, -1.25),
                                            (0.5, -1.25),
                                            (1, -0.75)])
    axes.add_patch(polygon_1)
    plt.text(0.6, -0.7, "Polygon", horizontalalignment="center")

    polygon_2 = matplotlib.patches.Polygon([(-0.5, 0),
                                            (-1, -0.5),
                                            (-1, -1),
                                            (-0.5, -1)],
                                           fill=False,
                                           closed=False)
    axes.add_patch(polygon_2)
    plt.text(-1.0, -0.1, "Polygon", horizontalalignment="center")


def drawRect(axes):
    """
    Рисование повернутого прямоугольника
    """
    rect_coord = (-1.5, 1)
    rect_width = 0.5
    rect_height = 0.3
    rect_angle = 30

    rect = matplotlib.patches.Rectangle(rect_coord,
                                        rect_width,
                                        rect_height,
                                        rect_angle,
                                        color="g")
    axes.add_patch(rect)
    plt.text(-1.5, 1.5, "Rect", horizontalalignment="center")


def drawPath(axes):
    vertices = [(1.0, -1.75), (1.5, -1.5), (1.5, -1.0), (1.75, -0.75)]
    codes = [matplotlib.path.Path.MOVETO,
             matplotlib.path.Path.LINETO,
             matplotlib.path.Path.LINETO,
             matplotlib.path.Path.LINETO,
             ]

    path = matplotlib.patches.Path(vertices, codes)
    path_patch = matplotlib.patches.PathPatch(path, fill=False)
    axes.add_patch(path_patch)

    plt.text(1.5, -1.75, "Path", horizontalalignment="center")


if __name__ == "__main__":
    plt.xlim(-2, 2)
    plt.ylim(-2, 2)
    plt.grid()

    # Получим текущие оси
    axes = plt.gca()
    axes.set_aspect("equal")

    drawLine(axes)
    drawPolygons(axes)
    drawPath(axes)
    drawRect(axes)
    drawCircles(axes)
    drawArc(axes)
    drawArrow(axes)

    plt.show()


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!