На первый взгляд, этот вопрос не на самом деле имеет смысл, потому что обычная диаграмма рассеяния имеет только две оси, и, конечно, вы не можете построить точки с тремя измерениями (x, y и точность).
Однако есть альтернативные способы сделать это.
- Использовать цвета
import numpy as np
from matplotlib import pyplot as plt
x = np.random.rand(200)
y = np.random.rand(200)
fig, ax = plt.subplots(figsize=(5, 5))
ax.scatter(x, y, c=(x + y), cmap='RdPu')
scatter
принимает аргумент c
, которыйможет быть числовым значением, а также аргументом cmap
, который может быть строкой, ссылающейся на colormap
.
Объект colormap
преобразует числа, представленные в c
, в точки вдоль цветакартографирование, которое вы можете рассматривать как градиентный бар.
Использование трехмерных осей
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(5, 5))
ax = Axes3D(fig)
ax.scatter(x, y, (x + y))
Это превращает ваше 3-е измерение, точность, в обычное пространственное измерение.
Используйте размер маркеров
Очень похоже на опцию цвета в первой части, вы можете изменить размер маркеров разброса (если у вас есть представление о шкале значений),Таким образом, основываясь на первом примере, вы также можете сделать:
import numpy as np
from matplotlib import pyplot as plt
x = np.random.rand(200)
y = np.random.rand(200)
fig, ax = plt.subplots(figsize=(5, 5))
ax.scatter(x, y, c='k', s=5*(x + y), cmap='RdPu')
scatter
принимает также аргумент s
, который изменяет размер маркеров.