Code-, Notiz- und Datensatzdateien werden auf Gitee abgelegt.
Klicken Sie hier, um Gitee aufzurufen
https://gitee.com/jiangxun07/python-data-analysis.git
Artikelverzeichnis
0 Einführung in Seaborn
Seaborn ist eine statistische Diagrammproduktionsbibliothek, die auf Matplotlib basiert und deren Datenstruktur mit Pandas vereinheitlicht ist .
Hier ist eine Liste einiger Meeresmerkmale:
- Datensatzorientierte Schnittstelle zur Berechnung von Beziehungen zwischen mehreren Variablen
- Visualisierung von Beobachtungen und Statistiken von Kategorievariablen
- Visualisieren Sie univariate oder multivariate Verteilungen und vergleichen Sie sie mit ihren Teildatensätzen
- Steuern Sie verschiedene abhängige Variablen der linearen Regression und führen Sie Parameterschätzungen und -darstellungen durch
- Visualisieren Sie ganz einfach die Gesamtstruktur komplexer Daten
- Abstrahieren Sie die Erstellung von Statistikdiagrammen mit mehreren Tabellen stark und vereinfachen Sie den Visualisierungsprozess
- Bietet mehrere integrierte Designs zum Rendern von Matplotlib-Bildstilen
- Bietet Palettentools , um Ihre Daten zum Leben zu erwecken
Das Seaborn-Framework ist darauf ausgelegt, Daten mithilfe der Datenvisualisierung zu extrahieren und zu verstehen. Die bereitgestellten datensatzorientierten Diagrammfunktionen arbeiten hauptsächlich mit Zeilen- und Spaltenindizes und Arrays, einschließlich interner semantischer Zuordnung und statistischer Integration des gesamten Datensatzes, um informationsreiche Diagramme zu erstellen.
Im Terminal installieren:pip install seaborn
Offizielle Dokumente: http://seaborn.pydata.org/index.html
Offizielle
chinesische Dokumente von Seaborn: https://seaborn.apachecn.org/#/README
Offizielle chinesische Dokumente von Seaborn (muss beschleunigt werden) Blogger können offizielle Dokumente
senden Privat und kostenlos
Datensatz: https://github.com/mwaskom/seaborn-data
1 Staffel Erste Schritte
# 先看一下matplotlab的绘图
import matplotlib.pyplot as plt
import numpy as np
# 创建一些数据
# np.random.RandomState(0) 是一个随机数种子
# 通过该随机数种子生成的随机序列<正态分布>, 可以保证数据相同
rng = np.random.RandomState(0)
x = np.linspace(0, 10, num=500)
y = np.cumsum(rng.randn(500, 6), 0) # 500行数据, 6列, 按照行计算
# 用Matplotlib默认样式画图
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left')
import seaborn as sns # 导入
import matplotlib.pyplot as plt
import numpy as np
sns.set() # 使用seaborn的默认配置, 可以直接对接matplotlib绘图
plt.plot(x, y)
plt.legend('ABCDEF', ncol=2, loc='upper left')
2 Seemannszeichnung
2.1 Häufigkeitshistogramm
sns.set() kann die folgenden Seaborn-Parameter festlegen:
- Kontext: Legen Sie den Zeichenkontext fest, der „Notizbuch“ (Standardwert) oder „Papier“ sein kann.
- Stil: Legen Sie den Zeichenstil fest, der „weiß“ (Standardwert), „darkgrid“, „whitegrid“, „dark“, „white“ usw. sein kann.
- Palette: Legen Sie die Palette fest, die „default“ (Standardwert), „cubehelix“, „Set1“ usw. sein kann.
- Schriftart: Legen Sie die Schriftart fest, die „Serif“ (Standardwert), „Sans-Serif“ oder „Monospace“ sein kann.
- axlinestyle: Legen Sie den Achsenlinienstil fest, der „–“, „steps-mid“ usw. sein kann.
- savefig.dpi: Die Auflösung des gespeicherten Bildes.
- Figure.figsize: Stellen Sie die Bildgröße ein.
- print_grid: Legen Sie fest, ob das Raster gedruckt werden soll.
- ausführlich: Legen Sie fest, ob Informationsaufforderungen angezeigt werden sollen.
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
# 取的是正态分布的值
data=np.random.multivariate_normal([0,0],[[5,2],[2,2]],size=2000)
data=pd.DataFrame(data,columns=['x','y'])
sns.set()
# 绘制平滑估计图<直方图的拟合线>
sns.kdeplot(data['x'])
sns.kdeplot(data['y'])
sns.jointplot(data=data,x='x',y='y',kind='kde')
#data 是你的数据集。
#x 和 y 是在数据集中你想要在联合图上表示的列的名字。
#kind 参数指定你想创建的联合图的类型。在这种情况下,你选择了 'kde',也就是核密度估计图。
# kind='hex' 六边形核密度图样式 kind='kde' 线条样式
# kind='hex' 六边形核密度图样式
sns.jointplot(data=data,x='x',y='y',kind='hex')
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 取的是正太分布的值
data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)
data = pd.DataFrame(data, columns=['x', 'y'])
plt.hist(data['x'], density=True, alpha=0.5)
plt.hist(data['y'], density=True, alpha=0.1)
plt.legend('XY', ncol=2, loc='upper left')
plt.show()
2.2 Matrixdiagramm
sns.set()
iris=pd.read_csv('./data/iris.csv')
#sepal_length萼片长度
#sepal_width萼片宽度
#petal_length花瓣长度
#petal_width花瓣宽度
#species 种类
iris
# pairplot pair 成双成对, 描述数据两联高枝剪的关系, 线性, 非线性关系, 相关关系等等
# hue='species' 指定分类的字段, 将每个数据划分不同颜色
sns.pairplot(iris, hue='species')
2.3 Facettenhäufigkeitsdiagramm
tips=pd.read_csv('./data/tips.csv')
tips
# 计算消费占总餐费的比重
tips['tip_proportion']=tips['tip']/tips['total_bill']*100
# margin_titles 显示字段标题
grid=sns.FacetGrid(data=tips,row='sex',col='time',margin_titles=True)
grid.map(plt.hist,'tip_proportion',bins=np.linspace(0,40,15))
Warum geben Männer nachts so viel mehr Trinkgeld als mittags?
2.4 Boxplot
tips
with sns.axes_style(style='ticks'):
sns.catplot(data=tips,x='day',y='total_bill',hue='sex',kind='box')
#kind: 绘图类型:violin 小提琴图 swarm 散点图 box 箱线图
2.5 Klassifizierungsdiagramm
with sns.axes_style(style='ticks'):
sns.catplot(data=tips,x='day',y='total_bill',hue='sex',kind='violin')
with sns.axes_style(style='ticks'):
sns.catplot(data=tips,x='day',y='total_bill',hue='sex',kind='swarm')
sns.catplot(data=tips, x='day', y='total_bill', hue='smoker', kind='swarm')
sns.catplot(data=tips, x='day', y='total_bill', hue='smoker', kind='violin')
2.6 Gemeinsames Verteilungsdiagramm
Es werden immer noch Trinkgelddaten verwendet
sns.set()
sns.jointplot(data=tips,x='total_bill',y='tip',kind='hex')
sns.jointplot(data=tips, x='total_bill', y='tip', kind='reg')
# reg= 构建线性回归的拟合线条
- Pyecharts konzentriert sich auf die Anzeige von Daten und verfügt über dynamische Dateninteraktionseffekte
- matplotlib zeichnet den Grundriss
- Seaborn-Zeichnungsforschungsdaten
2.7 Palette
sns.color_palette() # 默认的调色板
sns.palplot(sns.hls_palette(8, l=0.5, s=0.8)) # l 亮度 s 饱和度