Диаграмма рассеяния с замаскированными данными с использованием Matplotlib

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом руководстве вы узнаете, как создать диаграмму рассеяния с замаскированными точками данных с использованием библиотеки Python Matplotlib. Мы также добавим линию, чтобы отделить замаскированные области.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт необходимых библиотек и установка случайного зерна

Начнем с импорта необходимых библиотек и установки случайного зерна для обеспечения воспроизводимости.

import matplotlib.pyplot as plt
import numpy as np

## Setting random seed for reproducibility
np.random.seed(19680801)

Генерация данных для диаграммы рассеяния

Далее мы генерируем данные для диаграммы рассеяния. Мы создаем 100 точек данных с случайными значениями x и y в диапазоне от 0 до 0,9 и случайными радиусами в диапазоне от 0 до 10. Цвет каждой точки данных определяется квадратным корнем ее площади.

N = 100
r0 = 0.6
x = 0.9 * np.random.rand(N)
y = 0.9 * np.random.rand(N)
area = (20 * np.random.rand(N))**2  ## 0 to 10 point radii
c = np.sqrt(area)

Маскирование точек данных и создание диаграммы рассеяния

Мы маскируем точки данных в зависимости от их расстояния от начала координат. Точки данных с расстоянием меньше r0 маскируются в area1, а те, у которых расстояние больше или равно r0, маскируются в area2. Затем мы создаем диаграмму рассеяния для замаскированных точек данных с marker='^' и marker='o' для area1 и area2 соответственно.

r = np.sqrt(x ** 2 + y ** 2)
area1 = np.ma.masked_where(r < r0, area)
area2 = np.ma.masked_where(r >= r0, area)
plt.scatter(x, y, s=area1, marker='^', c=c)
plt.scatter(x, y, s=area2, marker='o', c=c)

Добавление линии для отделения замаскированных областей

Наконец, мы добавляем линию, чтобы отделить замаскированные области. Мы создаем массив значений theta и рисуем круг с радиусом r0 с использованием np.cos(theta) и np.sin(theta).

## Show the boundary between the regions:
theta = np.arange(0, np.pi / 2, 0.01)
plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))

Отображение диаграммы рассеяния

Мы отображаем диаграмму рассеяния с использованием plt.show().

plt.show()

Резюме

В этом уроке мы узнали, как создать диаграмму рассеяния с замаскированными точками данных с использованием библиотеки Python Matplotlib. Мы также добавили линию, чтобы отделить замаскированные области. Начали с импорта необходимых библиотек и установки случайного зерна. Затем мы сгенерировали данные для диаграммы рассеяния и замаскировали точки данных в зависимости от их расстояния от начала координат. Затем мы создали диаграмму рассеяния для замаскированных точек данных и добавили линию, чтобы отделить замаскированные области. Наконец, мы отобразили диаграмму рассеяния.