11日目-シーボーン

コード、メモ、およびデータセット ファイルは gitee に配置されます。
ここをクリックして gitee に入ります
https://gitee.com/jiangxun07/python-data-analysis.git

0 シーボーンの紹介

Seaborn は、 matplotlibをベースとし、データ構造がpandasと統一された統計図作成ライブラリです。

Seaborn のいくつかの機能のリストは次のとおりです。

Seaborn フレームワークは、データの視覚化を中心にデータをマイニングして理解するように設計されています。提供されるデータ セット指向のグラフ作成機能は、主に行と列のインデックスと配列で動作し、内部セマンティック マッピングやデータ セット全体の統計的統合など、情報豊富なグラフを生成します。

ターミナルにインストールします。pip install seaborn

公式文書: http://seaborn.pydata.org/index.html
seaborn 公式文書
中国文書: https://seaborn.apachecn.org/#/README
seaborn 中国公式文書(高速化する必要があります)
ブロガーは
公式文書を送信できます無料で非公開データセット: https://github.com/mwaskom/seaborn-data

Seaborn 公式データセット

1 シーズンのはじめに

# 先看一下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 シーボーンの絵

2.1 頻度ヒストグラム

sns.set() は次の Seaborn パラメータを設定できます。

  • context: 描画コンテキストを設定します。これは、「ノートブック」(デフォルト値) または「紙」です。
  • style: 描画スタイルを設定します。「white」(デフォルト値)、「darkgrid」、「whitegrid」、「dark」、「white」などになります。
  • パレット: パレットを設定します。「default」(デフォルト値)、「cubehelix」、「Set1」などです。
  • font: フォントを設定します。「セリフ」(デフォルト値)、「サンセリフ」、「等幅」のいずれかです。
  • axlinestyle: 軸線のスタイルを設定します。「–」、「steps-mid」などを指定できます。
  • savefig.dpi: 保存された画像の解像度。
  • Figure.figsize: 画像サイズを設定します。
  • print_grid: グリッドを印刷するかどうかを設定します。
  • 詳細: 情報プロンプトを表示するかどうかを設定します。
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 マトリックス図

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 ファセット頻度チャート

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))

ここに画像の説明を挿入します
なぜ男性は昼よりも夜のほうがチップを多く払うのでしょうか?

2.4 箱ひげ図

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 分類図

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 結合分布図

まだヒントデータを使用しています

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 はデータの表示に焦点を当てており、動的なデータ相互作用効果があります。
  • matplotlibはフロアプランを描画します
  • シーボーン描画研究データ

2.7 パレット

sns.color_palette()  # 默认的调色板
sns.palplot(sns.hls_palette(8, l=0.5, s=0.8))  # l 亮度  s 饱和度

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/m0_73678713/article/details/134336385
おすすめ