Неправильные размеры маркеров с графиком Seaborn и графиком рассеяния относительно легенды - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь понять, как привести примеры легенды в соответствие с точками, нанесенными с помощью relplot в Seaborn в блокноте Jupyter. У меня есть size (float64) столбец в моих пандах DataFrame df:

sns.relplot(x="A", y="B", size="size", data=df)

Значения в столбце size: [0.0, -7.0, -14.0, -7.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 8.0, 2.0, 0.0, -4.0, 7.0, -4.0, 0.0, 0.0, 4.0, 0.0, 0.0, -3.0, 0.0, 1.0, 7.0], и, как вы можете видеть, минимальное значение равно -14, а максимальное значение 8. Похоже, легенда хорошо с этим связана. Тем не менее, посмотрите на нанесенные точки, есть точка, значительно меньшая, чем точка, соответствующая -16 в легенде. Там также нет точки, обозначенной в легенде как 8.

Что я делаю не так - или это ошибка?

Example of sizes not occurring in the dataset

Я пользуюсь пандами 0.24.2 и seaborn 0.9.0.


Редактировать : Присмотревшись к примеру Seaborn relplot :

relplot example

наименьший вес - 1613, но слева на графике есть оранжевая точка, которая меньше, чем точка на 1500 в легенде. Я думаю, это указывает на ошибку .

1 Ответ

1 голос
/ 15 июня 2019

Не уверен, что здесь делает морская волна, но если вы хотите использовать только один matplotlib, он может выглядеть так:

import numpy as np; np.random.rand
import matplotlib.pyplot as plt
import pandas as pd

s = [0.0, -7.0, -14.0, -7.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 0.0, 8.0, 2.0, 
     0.0, -4.0, 7.0, -4.0, 0.0, 0.0, 4.0, 0.0, 0.0, -3.0, 0.0, 1.0, 7.0]
x = np.linspace(0, 2*np.pi, len(s))
y = np.sin(x)
df = pd.DataFrame({"A" : x, "B" : y, "size" : s})

# calculate some sizes in points^2 from the initial values
smin = df["size"].min()
df["scatter_sizes"] = 0.25 * (df["size"] - smin + 3)**2
# state the inverse of the above transformation
finv = lambda y: 2*np.sqrt(y)+smin-3

sc = plt.scatter(x="A", y="B", s="scatter_sizes", data=df)
plt.legend(*sc.legend_elements("sizes", func=finv), title="Size")

plt.show()

enter image description here

Подробнееподробности приведены на графиках Scatter с примером легенды .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...