Seaborn предоставляет некоторые сложные функции для отображения данных. Внутренне это сильно зависит от matplotlib. Поскольку запрошенный участок не попадает в категории, в которых Seaborn превосходит другие, более целесообразно использовать разброс matplotlib напрямую:
import numpy as np
from matplotlib import pyplot as plt
A = [-0.26112159, 1.84683522, 2.23912728, 1.58848056, 1.28589823,
2.01355579, -0.144594, 0.8845673, -0.19764173, 0.00837658,
1.3515489, 0.18876488, 1.07088203, 1.11333346, 0.99854107,
1.67141781, 1.74938417, 1.17907989, 1.57017018, 2.04269495,
-0.10662102, 0.96283466, -0.01117658, 0.01610438, 1.31111783,
-0.08608504, -0.09535655, -0.0227967, 1.82867539, 1.4492189]
B = A
x = np.arange(len(A))
plt.scatter(x - 0.2, A, marker='o', color='tomato', label='Dataset A')
plt.scatter(x + 0.2, B, marker='o', color='deepskyblue', label='Dataset B')
plt.legend()
plt.show()
![resulting plot](https://i.stack.imgur.com/QMJTc.png)
Для иметь крестики в качестве маркеров, используйте marker='x'
или marker='+'
.
Чтобы нарисовать swarmplot (очень похоже на stripplot ) через Seaborn:
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
# A, B = ...
sns.swarmplot(x=np.repeat(['Dataset A', 'Dataset B'], len(A)), y=np.concatenate([A, B]))
plt.show()
![swarmplot](https://i.stack.imgur.com/mmlD5.png)
График kde может использоваться для сравнения статистического распределения. Вот пример с добавлением некоторого шума, чтобы оба набора немного отличались:
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
# A = ...
A = np.array(A)
B = A + np.random.normal(0,.1, len(A))
sns.kdeplot(A, label='Dataset A')
sns.kdeplot(B, label='Dataset B')
plt.show()
![kde plot](https://i.stack.imgur.com/DYu4R.png)