Rumah > pembangunan bahagian belakang > Tutorial Python > Penjelasan terperinci tentang Python's Seaborn (visualisasi data)

Penjelasan terperinci tentang Python's Seaborn (visualisasi data)

WBOY
Lepaskan: 2022-04-21 18:08:55
ke hadapan
7684 orang telah melayarinya

Artikel ini membawa anda pengetahuan yang berkaitan tentang python, yang terutamanya memperkenalkan isu berkaitan tentang Seaborn, termasuk plot serakan, carta garis, carta bar, dsb. untuk pemprosesan visualisasi data Mari lihat kandungan di bawah , saya harap ia akan membantu semua orang.

Penjelasan terperinci tentang Python's Seaborn (visualisasi data)

Pembelajaran yang disyorkan: tutorial video python

1 Pasang seaborn

Pasang:

pip install seaborn

Import:

import seaborn sebagai sns


2 Sediakan data

Sebelum kami mula secara rasmi, kami menggunakan kod berikut untuk menyediakan set. data untuk kemudahan Tunjukkan penggunaan.

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snspd.set_option('display.unicode.east_asian_width', True)df1 = pd.DataFrame(    {'数据序号': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],     '厂商编号': ['001', '001', '001', '002', '002', '002', '003', '003', '003', '004', '004', '004'],     '产品类型': ['AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'],     'A属性值': [40, 70, 60, 75, 90, 82, 73, 99, 125, 105, 137, 120],     'B属性值': [24, 36, 52, 32, 49, 68, 77, 90, 74, 88, 98, 99],     'C属性值': [30, 36, 55, 46, 68, 77, 72, 89, 99, 90, 115, 101]    })print(df1)
Salin selepas log masuk

Jana set data seperti berikut:

         Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


         


3.1 Menetapkan gaya latar belakang

Menetapkan gaya menggunakan kaedah sns.set_style() dan gaya terbina dalam di sini menggunakan latar belakang warna untuk mewakili nama, tetapi kandungan sebenar tidak terhad kepada warna latar belakang.


sns.set_style()

     
  • Gaya latar belakang yang anda boleh pilih ialah:
  • grid putih grid putih
  • latar belakang kelabu gelap
  • latar belakang putih putih

berdetak latar belakang putih dengan kutu di sekelilingnya





sns.set()

sns.set_style( “ darkgrid”)

sns.set_style(“whitegrid”)

sns.set_style(“gelap”)

sns.set_style(“putih”)

sns.set_style(“ticks”)


 di mana sns.set() bermaksud menggunakan gaya tersuai, jika tiada parameter dimasukkan, ia akan menjadi kelabu secara lalai gaya latar belakang Grid. Jika tiada set() atau set_style(), ia akan menjadi latar belakang putih.

 Pepijat yang mungkin: gaya "kutu" tidak sah untuk imej yang dilukis menggunakan kaedah relplot().

3.3 Lain-lain
Perpustakaan seaborn dikapsulkan berdasarkan perpustakaan matplotlib, dan gaya terkapsulnya boleh menjadikan kerja lukisan kami lebih mudah. Pernyataan yang biasa digunakan dalam perpustakaan matplotlib masih sah apabila menggunakan perpustakaan seaborn.

 Mengenai menetapkan sifat berkaitan gaya lain, seperti fon, satu perincian yang perlu diambil perhatian ialah kod ini mesti ditulis selepas sns.set_style() supaya berkesan. Contohnya, kod untuk menetapkan fon kepada tebal (untuk mengelakkan aksara Cina yang kacau-bilau):

plt.rcParams['font.sans-serif '] = [' SimHei']


  Jika gaya ditetapkan di belakangnya, fon yang ditetapkan akan mengatasi gaya yang ditetapkan, sekali gus menghasilkan amaran. Begitu juga dengan sifat-sifat lain.

3.2 Kawalan Sempadan
# 移除顶部和右部边框,只保留左边框和下边框sns.despine()# 使两个坐标轴相隔一段距离(以10长度为例)sns.despine(offet=10,trim=True)# 移除左边框sns.despine(left=True)# 移除指定边框 (以只保留底部边框为例)sns.despine(fig=None, ax=None, top=True, right=True, left=True, bottom=False, offset=None, trim=False)
Salin selepas log masuk

kaedah sns.despine()

4. Lukis plot berselerak
Gunakan perpustakaan seaborn untuk melukis plot serakan Anda boleh menggunakan kaedah replot() atau kaedah scatter().

Jenis parameter kaedah letak semula lalai kepada 'serakan', yang bermaksud melukis plot serakan.

Parameter rona dinyatakan dalam satu dimensi ini, dibezakan dengan warna


① Lukis plot taburan nilai atribut A dan nombor jujukan data, titik serakan merah, grid kelabu, kekalkan sebelah kiri , sempadan bawah

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei'] Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) sns.relplot(x='nombor siri data', y='Nilai atribut A', data=df1, color='red')

plt.show()       

② Lukis plot taburan untuk nilai atribut A dan nombor jujukan data Titik taburan memaparkan warna yang berbeza mengikut jenis produk yang berbeza
Grid putih, sempadan kiri dan bawah:

sns.set_style('whitegrid')
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.relplot(x= ' Nombor siri data', y='Nilai atribut A', hue='product type', data=df1)
plt.show()

       Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


③ Plotkan nilai bagi tiga medan A, B dan C dalam gaya yang berbeza pada graf yang sama (lukiskan plot serakan data paksi-x ialah [0,2 ,4 ,6,8…]
gaya tanda (garis bingkai dalam empat arah), fon menggunakan huruf condong

sns.set_style('ticks')
plt.rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(julat(0, len(df2)*2, 2 ))
dfs = [df2['Nilai atribut A'], df2['Nilai atribut B'], df2['Nilai atribut C']]
sns.scatterplot(data=dfs)
plt .show()

       Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


5 Lukis carta garisan

Gunakan perpustakaan sea. carta garis, anda boleh Gunakan kaedah replot() atau kaedah lineplot().

5.1 Gunakan kaedah replot()

sns.replot() melukis carta serakan secara lalai Untuk melukis carta garis, cuma tukar jenis parameter kepada ". baris".

Keperluan: Lukis carta garis nilai atribut A dan nombor siri data,
grid kelabu, fon global ialah condong dan laraskan saiz fon tajuk dan label dua paksi,
dan Jarak antara sistem koordinat dan tepi kanvas (jarak ditetapkan kerana fon tidak dipaparkan sepenuhnya):

sns. set(rc={'font.sans-serif ': "STKAITI"})
sns.relplot(x='data siri nombor', y='A attribute value', data=df1, color='purple' , kind='line')
plt title("Lukis carta garisan", saiz fon=18)
plt.xlabel('num', fontsize=18)
plt.ylabel('A attribute value', fontsize=16)
plt.subplots_adjust (kiri=0.15, kanan=0.9, bawah=0.1, atas=0.9)
plt.show()

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)



Keperluan: Lukiskan polyline atribut untuk jenis produk yang berbeza (tiga baris dalam satu gambar), gaya grid putih, fon condong.

sns.set_style("whitegrid")
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.replot (x='nombor siri data', y='Nilai atribut A', hue='jenis produk', data=df1, kind='line')
plt.title("Lukis carta garisan", saiz fon= 18)
plt.xlabel('bilangan', saiz fon=18)
plt.ylabel('Nilai atribut', saiz fon=16)
plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah =0.1 , atas=0.9)
plt.show()

       Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)



       

③      



③  : Akan Nilai bagi tiga medan A, B, dan C dilukis dalam gaya yang berbeza pada carta yang sama (melukis carta garisan Data paksi-x ialah [0,2,4,6,8…]
  gaya darkkgrid (Garis bingkai dalam keempat-empat arah mesti disertakan), gunakan huruf condong untuk fon dan tambah label paksi-x, label paksi-y dan tajuk. Jarak tepi adalah sesuai.





sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()

df2.index = list(julat(0, len(df2)*2, 2))
dfs = [df2['A attribute value'], df2['B attribute value'], df2['C attribute value']]

sns.relplot(data=dfs, kind=“line”)Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) plt.title(“Lukis carta garisan”, saiz fon=18)

plt.xlabel('bilangan', saiz fon=18)
plt.ylabel('Nilai atribut', saiz fon=16)

plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah=0.1, atas = 0.9) plt.show ()

Kol subgraf berbilang mendatar

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = [ 'STKAITI']
sns.relplot(data=df1, x="A attribute value", y="B attribute value", kind="line", col=" Manufacturer number")
plt.subplots_adjust (kiri=0.05, kanan=0.95, bawah=0.1, atas=0.9)
plt.show()

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)

Potret Baris subgraf berbilang

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(data=df1, x="Nilai atribut A", y="Nilai atribut B", kind="line", row="Nombor pengilang")
plt.subplots_adjust(kiri=0.15, kanan= 0.9, bawah = 0.1, atas = 0.95)
plt.show ()

hip h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h lukis carta garis. Butiran lain pada asasnya sama seperti di atas. Kod sampel adalah seperti berikut: Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


sns.set_style('darkgrid')

plt.rcParams ['font.sans-serif'] = ['STKAITI'] sns.lineplot(x='nombor siri data', y='Nilai atribut A', data=df1, color='purple' ) plt.title("Lukis carta garis", saiz fon=18)

plt.xlabel('bilangan', saiz fon=18)
plt.ylabel('Nilai atribut', saiz fon=16)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9) plt.show()



            >

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']

df2 = df1.copy() Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) df2.index = list(julat(0, len(df2)*2, 2))

dfs = [df2['A attribute value'], df2['B attribute value'], df2[' C attribute value']]
sns.lineplot(data=dfs)
plt.title("Lukis carta garis", saiz fon=18)

plt.xlabel('bilangan', saiz fon=18) plt.ylabel('Nilai atribut', saiz fon=16)
plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah=0.1, atas=0.9)
plt.show()



bins=6 bermaksud membahagikan lukisan kepada enam selang
rug=True bermaksud memaparkan bar kecil nipis pemerhatian pada paksi-x
kde=True bermaksud memaparkan lengkung ketumpatan isirong

sns.set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['STKAITI']Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) sns.displot (data =df1[['C attribute value']], bins=6, rug=True, kde=True)

plt.title("Histogram", fontsize=18)
plt.xlabel('C nilai atribut', saiz fon=18)

plt.ylabel('kuantiti', saiz fon=16)

plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah=0.1, atas=0.9)

plt . show()

        

Menjana secara rawak 300 data taburan normal


sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
np.random.seed (13)
Y = np.random.randn(300)
sns.displot(Y, bins=9, rug=True, kde=True)
plt.title("Histogram", saiz fon = 18)
plt.xlabel('Nilai atribut C', saiz fon=18)
plt.ylabel('Kuantiti', saiz fon=16)

plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah =0.1, atas=0.9)
plt.show()

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


              

              

carta Dr.>

Kaedah barplot() digunakan untuk melukis carta bar
Data medan jenis produk digunakan sebagai data paksi-x dan data nilai atribut A digunakan sebagai y -data paksi. Kelaskan mengikut medan nombor pengeluar yang berbeza.
Butirannya adalah seperti berikut:

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.barplot(x="Jenis Produk ", y='Nilai atribut', hue="Nombor pengilang", data=df1)
plt.title("Carta bar", saiz fon=18)
plt.xlabel('Jenis produk', saiz fon =18)
plt.ylabel('kuantiti', saiz fon=16)
plt.subplots_adjust(kiri=0.15, kanan=0.9, bawah=0.15, atas=0.9)
plt.show() Parameter utama ialah x, y, data. Mewakili data paksi-x, data paksi-y dan data set data masing-masing.

Selain itu, seperti yang dinyatakan di atas, anda juga boleh menentukan pembolehubah kategori melalui rona; berbilang sub-gambar;

mengawal bilangan sub-gambar dalam setiap baris melalui col_wrap; Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)

Mari kita lakukan regresi linear pada nilai atribut X dan nilai atribut Y Kodnya adalah seperti berikut:

sns.set_style('darkgrid')<.> plt. rcParams['font.sans-serif'] = ['STKAITI']
sns.lmplot(x="A attribute value", y='B attribute value', data=df1)
plt.title( "Model regresi linear", fontsize=18)
plt.xlabel('A attribute value', fontsize=18)
plt.ylabel('B attribute value', fontsize=16)
plt.subplots_adjust (kiri=0.15, kanan=0.9, bawah=0.15, atas=0.9)
plt.show()



                >

9. Lukiskan peta ketumpatan isirong kdeplot()


9.1 Peta ketumpatan isirong am



Melukis peta kepadatan jumlah boleh membuat kita lebih intuitif dapat melihat dengan jelas ciri-ciri taburan data sampel. Kaedah yang digunakan untuk melukis plot ketumpatan kernel ialah kaedah kdeplot().

Lukis plot ketumpatan kernel untuk nilai atribut A dan nilai atribut B
Tetapkan lorek kepada True untuk memaparkan bayang sekeliling, jika tidak, hanya baris.

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']

sns.kdeplot (df1["Nilai atribut"], shade=True, data=df1, color='r') sns.kdeplot(df1["B attribute value"], shade=True, data=df1, color= 'g') plt.title("Plot Ketumpatan Kernel", fontsize=18)

plt.xlabel('Value', fontsize=18)

plt.subplots_adjust(left=0.15, right=0.9 , bawah=0.15, atas=0.9) plt.show()

ˆ ˆ ˆ ˆ


9.2 Plot ketumpatan isirong marginal

Kaedah sns.jointplot() digunakan semasa melukis peta ketumpatan isirong marginal. Jenis parameter hendaklah "kde". Apabila menggunakan kaedah ini, gaya gelap digunakan secara lalai. Ia tidak disyorkan untuk menambah gaya lain secara manual, jika tidak, imej mungkin tidak dipaparkan dengan betul.



plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.jointplot(x=df1["Nilai atribut"] , y=df1["B attribute value"], kind="kde", space=0)
plt.show()

        

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


10. Lukis boxplot boxplot()

Kaedah boxplot() digunakan untuk melukis boxplot.

Parameter asas ialah x, y, data.

Selain itu, boleh juga terdapat rona untuk mewakili medan klasifikasi
lebar boleh melaraskan lebar kabinet
menandakan sama ada kabinet tengah memaparkan takik Palsu tidak memaparkannya.

Memandangkan data sebelumnya tidak cukup besar untuk dipaparkan, satu lagi set data dijana di sini: Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


np.random. benih (13) Y = np.random.randint(20, 150, 360)

df2 = pd.DataFrame(

{'Nombor pengilang': ['001', '001', '001 ' , '002', '002', '002', '003', '003', '003', '004', '004', '004'] * 30, 'Jenis produk': [ ' AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'] * 30 ,
'Nilai atribut XXX': Y
}
)


Selepas penjanaan, mula melukis plot kotak:

plt.rcParams['font.sans-serif'] = [ 'STKAITI']
sns.boxplot(x='jenis produk', y='Nilai atribut XXX', data=df2)
plt.show()

        Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


Selepas bertukar-tukar data paksi x dan y:

'> fon. .sans-serif'] = ['STKAITI']
sns.boxplot(y='jenis produk', x='Nilai atribut XXX', data=df2)
plt.show()
Gunakan nombor pengilang sebagai medan klasifikasi:

plt.rcParams['font.sans-serif'] = ['STKAITI']

sns.boxplot (x='jenis produk', y='Nilai atribut XXX', data=df2, hue="nombor pengilang") plt.show()Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


         

11. Lukis plot biola violinplot()

Plot biola menggabungkan ciri plot kotak dan plot ketumpatan kernel untuk menunjukkan bentuk taburan data.
Gunakan kaedah violinplot() untuk melukis plot biola.

plt.rcParams['font.sans-serif'] = ['STKAITI']Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) sns.violinplot(x='Product Type', y=' Nilai atribut XXX', data=df2)

plt.show()

        


sns.plot biola(x='XXX nilai atribut', y='jenis produk', data=df2)
plt.show() plt.show()

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)



12 Lukis peta haba()

Ambil data nombor pemenang Shuangseqiu sebagai contoh untuk melukis peta haba. . Data di sini adalah penjanaan Nombor rawak.

Penjelasan terperinci tentang Pythons Seaborn (visualisasi data)


import panda sebagai pd

import matplotlib.pyplot sebagai plt import seaborn sebagai sns

sns.set()
plt .figure(figsize=(6,6))

plt.rcParams['font.sans-serif'] = ['STKAITI']

s1 = np.random.randint(0, 200, 33)Penjelasan terperinci tentang Pythons Seaborn (visualisasi data) s2 = np.random.randint(0, 200, 33)

s3 = np.random.randint(0, 200, 33)
s4 = np.random.randint(0, 200 , 33)

s5 = np.random.randint(0, 200, 33) s6 = np.random.randint(0, 200, 33) s7 = np.random.randint(0, 200, 33)

data = pd.DataFrame(

{'satu': s1, 'dua': s2, 'tiga': s3,

'empat': s4,
'lima':s5,

'enam':s6, 'tujuh':s7
}
)

plt.title('Peta Haba Bola Warna Ganda ')
sns.peta haba(data, annot=Benar, fmt='d', lw=0.5)
plt.xlabel('Digit nombor menang')
plt.ylabel('Nombor bola dua warna ')
x = ['kedudukan pertama', 'kedudukan ke-2', 'kedudukan ke-3', 'kedudukan ke-4', 'kedudukan ke-5', 'kedudukan ke-6', 'kedudukan ke-7']
plt.xticks( julat(0, 7, 1), x, ha='left')
plt.show()




         




         



Pembelajaran yang disyorkan:
tutorial video python

Atas ialah kandungan terperinci Penjelasan terperinci tentang Python's Seaborn (visualisasi data). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan