М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет244/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   240   241   242   243   244   245   246   247   ...   334
Байланысты:
Изучаем Python


Глава 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

Достарыңызбен бөлісу:
1   ...   240   241   242   243   244   245   246   247   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет