Setarea culorii de fundal a parcelei în Seaborn (Programare, Python, Matplotlib, Plot, Pandas, Seaborn)

Lyndon White a intrebat.

Folosesc Seaborn pentru a trasa niște date în Pandas.

Realizez câteva diagrame foarte mari (factorplots).

Pentru a le vizualiza, folosesc unele facilități de vizualizare de la universitatea mea.Folosesc un ecran compus din 4 monitoare pe 4 cu 4 monitoare, cu o mică (dar nu zero) oblicitate – spațiul dintre ecrane. Acest decalaj este negru.Pentru a minimiza deconectarea dintre ecrane vreau ca fundalul graficului să fie negru.Am căutat în documentație și m-am jucat și nu reușesc să rezolv..Cu siguranță este simplu.

Pot obține un fundal gri folosind set_style('darkgrid')

trebuie să accesez direct graficul în matplotlib?

Comentarii

  • sns.set_style("whitegrid") a fost ceea ce am căutat când am găsit această întrebare. –  > Por Martin Thoma.
3 răspunsuri
Paul H

seaborn.set ia și rc argument care acceptă un dicționar de matplotlib valide rcparams. Așadar, trebuie să setăm două lucruri: the axes.facecolor, care este culoarea zonei în care sunt desenate datele, și valoarea figure.facecolor, care este tot ceea ce reprezintă o parte a figurii în afara zonei de axes obiect.

(editat cu sfatul lui @mwaskom)

Deci, dacă faceți:

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn
seaborn.set(rc={'axes.facecolor':'cornflowerblue', 'figure.facecolor':'cornflowerblue'})

fig, ax = plt.subplots()

Veți obține: :

Și asta va funcționa cu FacetGrid la fel de bine.

Comentarii

  • Acest lucru ucide kernel…. –  > Por SumNeuron.
  • @SumNeuron altceva îți ucide nucleul…  > Por Paul H.
Greg

Nu sunt familiarizat cu seaborn, dar următoarele par să vă permită să schimbați fundalul prin setarea fundalului axelor. Se poate seta oricare dintre ax.set_* elemente.

import seaborn as sns
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt

m=pd.DataFrame({'x':['1','1','2','2','13','13'],
                'y':np.random.randn(6)})

facet = sns.factorplot('x','y',data=m)

facet.set(axis_bgcolor='k')

plt.show()

Comentarii

  • Ei bine, asta funcționează. Sper că nu este cea mai bună metodă. (Bănuiesc că este totuși). Voi aștepta să văd dacă un expert în seaborn are o modalitate mai bună înainte de a accepta acest lucru. –  > Por Lyndon White.
Simas Joneliunas

În noile versiuni de seaborn puteți utiliza și axes_style() și set_style() pentru a seta rapid stilul de parcelare la unul dintre stilurile predefinite: darkkgrid, whitegrid, dark, white, ticks

st = axes_style("whitegrid")
set_style("ticks", {"xtick.major.size": 8, "ytick.major.size": 8})

Mai multe informații în documentația seaborn