cambiar el estilo de línea en la cuadrícula de facetas de seaborn

spore234

Tengo un conjunto de datos como este

import numpy as np; np.random.seed(3)
import pandas as pd
import seaborn.apionly as sns
import matplotlib.pyplot as plt

def get_data(n=266, s=[5,13]):
    val = np.c_[np.random.poisson(lam=s[0], size=n),
                np.random.poisson(lam=s[1], size=n)].T.flatten()
    comp = [s[0]]*n +  [s[1]]*n
    ov = np.random.choice(list("ABC"), size=2*n)
    return pd.DataFrame({"val":val, "overlap":ov, "comp":comp})

data1 = get_data(s=[9,11])
data2 = get_data(s=[9,11])
data3 = get_data(s=[9,11])

#option1 combine
for i, df in enumerate([data1,data2,data3]):
    df["data"] = ["data{}".format(i+1)] * len(df)

data = data1.append(data2)
data = data.append(data3)

bw = 2
a = sns.FacetGrid(data, col="overlap",  hue="comp", row="data")
a = (a.map(sns.kdeplot, "val",bw=bw ))
plt.show()

ingrese la descripción de la imagen aquí

Quiero que la línea naranja (que corresponde a comp = 11 en el marco de datos) sea negra y discontinua, ¿cómo puedo hacer eso?

También quiero controlar el xlimpara algunas subtramas. ¿Es eso posible?

ACTUALIZAR :

Necesito agregar que las facetas pueden tener diferentes números de niveles de tono, como este:

import numpy as np; np.random.seed(3)
import pandas as pd
import seaborn.apionly as sns
import matplotlib.pyplot as plt

def get_data(n=266, s=[5,13]):
    val = np.c_[np.random.poisson(lam=s[0], size=n),
                np.random.poisson(lam=s[1], size=n)].T.flatten()
    comp = [s[0]]*n +  [s[1]]*n
    ov = np.random.choice(list("ABC"), size=2*n)
    return pd.DataFrame({"val":val, "overlap":ov, "comp":comp})

def get_data2(n=266, s=[5,13,3]):
    val = np.c_[np.random.poisson(lam=s[0], size=n),
                np.random.poisson(lam=s[1], size=n),
                np.random.poisson(lam=s[1], size=n)].T.flatten()
    comp = [s[0]]*n +  [s[1]]*n + [s[2]]*n
    ov = np.random.choice(list("ABC"), size=3*n)
    return pd.DataFrame({"val":val, "overlap":ov, "comp":comp})

data1 = get_data(s=[9,11])
data2 = get_data2(s=[7,9,11])
data3 = get_data(s=[9,11])

#option1 combine
for i, df in enumerate([data1,data2,data3]):
    df["data"] = ["data{}".format(i+1)] * len(df)

data = data1.append(data2)
data = data.append(data3)

bw = 2
a = sns.FacetGrid(data, col="overlap",  hue="comp", row="data")
a = (a.map(sns.kdeplot, "val",bw=bw ))
plt.show()

ingrese la descripción de la imagen aquí

Importancia de ser ernesto

Puede usar el hue_kwsargumento to FacetGridpara cambiar el color o el estilo de línea del gráfico mapeado.

d = {'color': ['C0', 'k'], "ls" : ["-","--"]}
g = sns.FacetGrid(data, col="overlap",  hue="comp", row="data",hue_kws=d )

Si se utilizan más niveles de tono, es necesario proporcionar más colores y estilos de línea, por ejemplo, d = {'color': ['C0', 'k', "crimson"], "ls" : ["-","--", "-."]}para 3 niveles de tono.

Para cambiar los xlimits puedes usar el xlimargumento

g = sns.FacetGrid(..., xlim=(-10,40) )

ingrese la descripción de la imagen aquí

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

establecer límites de eje en facetas individuales de la cuadrícula de facetas seaborn

cómo cambiar el color de los bordes en línea de la cuadrícula vaadin

¿Cómo cambiar el color de la línea de la cuadrícula en el diagrama de dispersión?

índice de error en la cuadrícula de facetas

d3.js: define el estilo de la línea de cuadrícula con javascript

Cómo agregar leyenda en el gráfico de barras de cuadrícula de facetas de Seaborn

Dibuje una línea de línea horizontal en una posición específica / anote una cuadrícula de facetas en seaborn

La leyenda de Seaborn FacetGrid pierde detalles de estilo de línea al cambiar el ancho de línea

Controlar el espaciado de la cuadrícula en seaborn

usar la cuadrícula de facetas para el eje x no aes en ggplot?

seaborn - cuadrícula de facetas de valores de columna

Leyenda de cuadrícula de facetas de Seaborn superpuesta

agregar segmentos de línea a la cuadrícula de facetas existente ggplot r

Cuadrícula de facetas de Seaborn: Adición de una línea media horizontal a cada faceta de plt.plot

Establecer la posición de la etiqueta para la cuadrícula de facetas seaborn

Cambiar el grosor de la línea de cuadrícula en el gráfico de superficie 3D en Python Matplotlib

¿Cómo usar las áreas de plantilla de cuadrícula en el estilo reaccionar en línea?

Cambiar el diseño de Bootstrap de formulario en línea a cuadrícula en el dispositivo móvil

Cambiar el diseño de Bootstrap de formulario en línea a cuadrícula en el dispositivo móvil

Cómo cambiar el estilo de la celda de la cuadrícula de datos según el operador condicional en WPF

¿Cómo cambiar el estilo de línea para diferentes líneas de regresión en seaborn implot?

¿Cómo cambiar el estilo de línea para diferentes líneas de regresión en seaborn implot?

La línea de cuadrícula principal en el origen no aparece en matplotlib

Cambiar el color de fondo de la columna en la cuadrícula de forma dinámica

Cambiar el ancho de la línea media de boxenplot en seaborn

Cambiar el ancho de la línea media de boxenplot en seaborn

Cómo mostrar la línea de cuadrícula para el eje Y en matplotlib

El estilo angular no funciona con la cuadrícula de kendo

Usando columnas de plantilla de cuadrícula en ReactJS, estilo en línea