Глава 15 • Генерирование данных
точки окрашивались в соответствии с их позицией в блуждании, мы передаем в ар-
гументе
c
список с позицией каждой точки. Так как точки выводятся по порядку,
список просто содержит числа от 1 до 4999:
rw_visual.py
...
while True:
# Построение случайного блуждания
rw = RandomWalk()
rw.fill_walk()
# Нанесение точек на диаграмму.
plt.style.use('classic')
fig, ax = plt.subplots()
❶
point_numbers = range(rw.num_points)
ax.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,
edgecolors='none', s=15)
plt.show()
keep_running = input("Make another walk? (y/n): ")
...
В точке
функция
range()
используется для генерирования списка чисел, размер
которого равен количеству точек в блуждании. Полученный результат сохраняется
в списке
point_numbers
, который используется для назначения цвета каждой точке
в блуждании. Мы передаем
point_numbers
в аргументе
c
, используем цветовую
карту
Blues
и затем передаем
edgecolor=none
для удаления черного контура вокруг
каждой точки. В результате создается диаграмма блуждания с градиентным пере-
ходом от светло-синего к темно-синему (рис. 15.10).
Рис. 15.10.
Случайное блуждание, окрашенное
с применением цветовой карты Blues
Случайное блуждание
335
Начальные и конечные точки
Помимо раскраски точек, обозначающей их позицию, было бы неплохо видеть,
где начинается и заканчивается каждое блуждание. Для этого можно прорисовать
первую и последнюю точки отдельно, после нанесения на диаграмму основной
серии. Мы выведем конечные точки с б
ольшим размером и другим цветом, чтобы
они выделялись на общем фоне:
rw_visual.py
...
while True:
...
ax.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues,
edgecolors='none', s=15)
# Выделение первой и последней точек.
ax.scatter(0, 0, c='green', edgecolors='none', s=100)
ax.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none',
s=100)
plt.show()
...
Чтобы вывести начальную точку, мы рисуем точку (0, 0) зеленым цветом с большим
размером (
s
=100) по сравнению с остальными точками. Для выделения конечной
точки последняя пара координат
x
и
y
выводится с размером 100. Обязательно
вставьте этот код непосредственно перед вызовом
plt.show()
, чтобы начальная
и конечная точки выводились поверх всех остальных точек.
При выполнении этого кода вы будете точно видеть, где начинается и кончается
каждое блуждание. (Если конечные точки не выделяются достаточно четко, на-
страивайте их цвет и размер, пока не достигнете желаемого результата.)
Удаление осей
Уберем оси с диаграммы, чтобы они не отвлекали зрителя от общей картины. Для
удаления осей используется следующий код:
rw_visual.py
...
while True:
...
ax.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none',
s=100)
# Удаление осей.
❶
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
plt.show()
...
336
Достарыңызбен бөлісу: |