Давайте закончим играться с точечными диаграммами. На этот раз, вместо размера, случайными будут цвета, но их будет ограниченное количество. Например, я выбрал четыре ярких, понятных каждому зрителю цвета: красный, синий, зелёный и оранжевый. Конечно, их может быть гораздо больше. На выходе должно получиться красочное конфетти из случайных точек.

# задаём параметры, которые не будут меняться

# colors — это список используемых нами цветов

colors = ['red', 'blue', 'green', 'orange']

# N — это количество точек

N = 1000
# загружаем библиотеку для визуализации

import matplotlib.pyplot as plt

Цикл

Здесь я должен вас познакомить с понятием “цикл”. Все, что находится под строчкой, которая начинается с “for” и оформляется отступом будет повторяться N раз.

# Мы будем использовать библиотеку random, которая позволяет генерить случайные числа

import random
# перед запуском цикла создадим три пустых списка для координат и цвета

x = []
y = []
c = []

# далее идет повторяющаяся N раз операция. для X и Y создаются случайные числа от 1 до 101
# для этого из библиотеки random используется функция randrange
# в случае с цветом мы используем функцию choice
# она случайным образом забирает из списка colors один элемент 

for i in range (N):
    x.append(random.randrange(1, 101, 1))
    y.append(random.randrange(1, 101, 1))
    c.append(random.choice(colors))
    
# создаём точечную диаграмму

plt.scatter(x,y,c=c)

# отключаем оси

plt.axis('off')

# смотрим

plt.show()

# сколько раз мы запустим этот фрагмент кода, столько и получим изображения с разной композицией

png

Альтернативный способ

Можно не использовать цикл, и библиотеку random.

# Сразу загружаем библиотеку numpy, которую приходится использовать в любой непонятной ситуации

import numpy as np
# используем фукции rand и choice, чтобы создать списки случайных чисел и цветов

x = np.random.rand(N)
y = np.random.rand(N)
c = np.random.choice(colors, size = N)

# дальше код мало чем отличается от предыдущего примера

plt.scatter(x,y,c=c)
plt.axis('off')
plt.show()

png