日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

可视化库-Matplotlib-盒图(第四天)

發布時間:2024/8/26 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 可视化库-Matplotlib-盒图(第四天) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

盒圖由五個數值點組成,最小觀測值,下四分位數,中位數,上四分位數,最大觀測值

IQR = Q3 - Q1 Q3表示上四分位數, Q1表示下四分位數,IQR表示盒圖的長度

最小觀測值 min =Q1 - 1.5*IQR

最大觀測值 max=Q3 + 1.5*IQR , 大于最大值或者小于最小值就是離群點

1. 畫出一個盒圖 plt.boxplot(tang_array, notch=False, sym='o', vert=True) # tang_array表示輸入的列表, notch表示盒圖的樣子,sym表示偏離值的表示方法, vert表示豎著,還是橫著

import matplotlib.pyplot as plt
import numpy as np
# 構造正態分布的列表數組
tang_array = [np.random.normal(0, std, 100) for std in [0.1, 0.2, 0.3, 0.4]]

fig = plt.figure(figsize=(8, 6))
plt.boxplot(tang_array, notch=False, sym='o', vert=True)

plt.xticks([x+1 for x in range(len(tang_array))], ['x1', 'x2', 'x3', 'x4'])
plt.title('box plot')
plt.xlabel('x')
plt.show()

2 設置盒圖的線條顏色

import matplotlib.pyplot as plt
import numpy as np
# 構造正態分布的列表數組
tang_array = [np.random.normal(0, std, 100) for std in [0.1, 0.2, 0.3, 0.4]]

fig = plt.figure(figsize=(8, 6))
bplt = plt.boxplot(tang_array, notch=False, sym='o', vert=True)
for compnent  in bplt.keys():
    for line in bplt[compnent]:
        line.set_color('red')

plt.xticks([x+1 for x in range(len(tang_array))], ['x1', 'x2', 'x3', 'x4'])
plt.title('box plot')
plt.xlabel('x')
plt.show()

3.對盒圖進行填充操作設置pacth_artist=True 對盒圖面進行填充bplt['boxes'].set_facecolor('r')

tang_array = [np.random.uniform(0, std, 100) for std in [0.1, 0.2, 0.3, 0.4]]
bar_labels = ['x1', 'x2', 'x3', 'x4']

fig = plt.figure()
plt.xticks([x+1 for x in range(len(tang_array))], bar_labels)
bplt = plt.boxplot(tang_array, notch=False, sym='o', vert=True, patch_artist=True)

colors = ['pink', 'lightblue', 'lightgreen']
for pacthes, color in zip(bplt['boxes'], colors):
    pacthes.set_facecolor(color)

plt.show()

4. 設置小提琴圖

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))
tang_data = [np.random.normal(0, std, 100) for std in range(1, 4)]
axes[0].violinplot(tang_data, showmeans=False, showmedians=True)
axes[0].set_title('violin plot')

axes[1].boxplot(tang_data)
axes[1].set_title('box plot')


for ax in axes:
    # 對y軸加上網格
    ax.yaxis.grid(True)
    ax.set_xticks([y+1 for y in range(len(tang_data))])
# 對每個圖加上xticks操作
plt.setp(axes, xticks=[y+1 for y in range(len(tang_data))], xticklabels=['x1', 'x2', 'x3'])
plt.show()

總結

以上是生活随笔為你收集整理的可视化库-Matplotlib-盒图(第四天)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。