Estou plotando um conjunto de dados usando um gráfico de dispersão em Python, e estou codificando os dados tanto em cor quanto em tamanho. Gostaria que a legenda representasse isso.
Estou ciente de .legend_elements(prop='sizes')
que posso ter cores ou tamanhos, mas não ambos ao mesmo tempo. Encontrei uma maneira de alterar a cor do marcador ao usar prop='sizes'
com o color
argumento, mas não é isso que pretendo fazer (eles são todos da mesma cor).
Aqui está um MWE:
import pandas as pd
import numpy as np
import pylab as pl
time = pd.DataFrame(np.random.rand(10))
intensity = pd.DataFrame(np.random.randint(1,5,10))
df = pd.concat([time, intensity], axis=1)
size = intensity.apply(lambda x: 10*x**2)
fig, ax = pl.subplots()
scat = ax.scatter(time, intensity, c=intensity, s=size)
lgd = ax.legend(*scat.legend_elements(prop="sizes", num=3, \
fmt="{x:.1f}", func=lambda s: np.sqrt(s/10)), \
title="intensity")
e eu gostaria que os marcadores também fossem codificados por cores.
Qualquer ajuda ou dica será apreciada!
Usando
legend_elements
, você pode obter o tamanho e os elementos de legenda baseados em cores separadamente e, em seguida, definir as cores do primeiro com o último. Por exemplo,