Глава 15 • Генерирование данных
scatter_squares.py
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]
plt.scatter(x_values, y_values, s=100)
# Назначение заголовка диаграммы и меток осей.
...
Список
x_values
содержит числа, возводимые в квадрат, а в
y_values
содержатся
квадраты. При передаче этих списков
scatter()
библиотека
matplotlib
читает
по одному значению из каждого списка и наносит их на диаграмму как точку.
Таким образом, на диаграмму будут нанесены точки (1, 1), (2, 4), (3, 9), (4, 16)
и (5, 25); результат показан на рис. 15.5.
Рис. 15.5.
Точечная диаграмма с несколькими точками
Автоматическое вычисление данных
Строить списки вручную неэффективно, особенно при большом объеме данных.
Вместо того чтобы передавать данные в виде списка, мы воспользуемся циклом
Python, который выполнит вычисления за нас. Вот как выглядит такой цикл для
1000 точек:
scatter_squares.py
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, s=40)
Построение простого графика
317
# Назначение заголовка диаграммы и меток осей.
...
# Назначение диапазона для каждой оси.
w plt.axis([0, 1100, 0, 1100000])
plt.show()
Все начинается со списка значений координаты
x
с числами от 1 до 1000
. Затем
генератор списка строит значения
y
, перебирая значения
x
(
for
x
in
x_values
), воз-
водя каждое число в квадрат (
x**2
) и сохраняя результаты в
y_values
. Затем оба
списка (входной и выходной) передаются
scatter()
.
Набор данных достаточно велик, поэтому мы выбираем меньший размер шрифта,
а функция
axis()
используется для задания диапазона каждой оси
. Функция
axis()
получает четыре значения: минимум и максимум по осям
x
и
y
. В данном
случае по оси
x
откладывается диапазон от 0 до 1100, а по оси
y
— диапазон от 0
до 1 100 000. На рис. 15.6 показан результат.
Рис. 15.6.
Диаграмма с 1000 точками строится так же легко,
как и диаграмма с 5 точками
Удаление контуров точек
Библиотека
matplotlib
позволяет раскрашивать точки на точечной диаграмме
в разные цвета. Оформление по умолчанию — синие точки с черным контуром —
хорошо подходит для диаграмм с несколькими точками. Однако при большом
количестве точек черные контуры начинают сливаться. Чтобы удалить контуры
вокруг точек, передайте аргумент
edgecolor='none'
при вызове
scatter()
:
plt.scatter(x_values, y_values, edgecolor='none', s=40)
Запустите
scatter_squares .py
с этим вызовом, и вы увидите, что на диаграмме выво-
дятся только заполненные синие точки.
318
Достарыңызбен бөлісу: |