Как аннотировать диаграммы рассеяния matplotlib
Вы можете использовать следующий базовый синтаксис для аннотирования диаграмм рассеяния в Matplotlib:
#add 'my text' at (x, y) coordinates = (6, 9.5) plt. text (6, 9.5, ' my text ')
Следующие примеры показывают, как использовать этот синтаксис на практике.
Создайте базовое облако точек
Следующий код показывает, как создать базовую диаграмму рассеяния с помощью Matplotlib:
import matplotlib.pyplot as plt #createdata x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt. scatter (x,y)
Аннотировать одну точку
Мы можем использовать следующий код, чтобы добавить аннотацию к одной точке графика:
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt. scatter (x,y) #add text 'Here' at (x, y) coordinates = (6, 9.5) plt. text (6, 9.5, ' Here ')
Аннотировать несколько точек
Мы можем использовать следующий код для добавления аннотаций к нескольким точкам на графике:
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] #create scatterplot plt. scatter (x,y) #add text to certain points plt. text (3, 4.5, ' This ') plt. text (6, 9.5, ' That ') plt. text (8.2, 14, ' Those ')
Аннотируйте все точки
Мы можем использовать следующий код для добавления аннотаций к каждой точке графика:
import matplotlib.pyplot as plt #createdata x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] labs = ['A', 'B', 'C', 'D', 'E'] #create scatterplot plt. scatter (x,y) #use for loop to add annotations to each point in plot for i, txt in enumerate(labs): plt. annotate (txt, (x[ i ], y[ i ]))
По умолчанию аннотации размещаются непосредственно над точками в облаке точек, а размер шрифта по умолчанию равен 10.
Следующий код показывает, как настроить эти два параметра так, чтобы аннотации располагались немного правее точек, а размер шрифта был немного больше:
import matplotlib.pyplot as plt #create data x = [3, 6, 8, 12, 14] y = [4, 9, 14, 12, 9] labs = ['A', 'B', 'C', 'D', 'E'] #create scatterplot plt. scatter (x,y) #use for loop to add annotations to each point in plot for i, txt in enumerate(labs): plt. annotate (txt, (x[ i ]+.25, y[ i ]), fontsize=12)
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Matplotlib:
Как добавить легенду к диаграмме рассеяния в Matplotlib
Как раскрасить диаграмму рассеяния по значению в Matplotlib
Как добавить среднюю линию на графики в Matplotlib