matplotlib绘制简单图标(箱型图,小提琴图,雷达图,误差棒图)

boxplot()

# -*- coding:utf-8 -*
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
testA = np.random.randn(5000)
testB = np.random.randn(5000)
testList = [testA, testB]

labels = ['AlphaRM', 'BetaRM']
colors = ['#bebada', '#8dd3c7']

whis = 1.0
width = 0.35

bplot = plt.boxplot(testList,
                   whis = whis,
                    widths = width,
                    sym = 'o',
                    labels = labels,
                    patch_artist = True
                   )
for patch, color in zip(bplot['boxes'], colors):
    patch.set_facecolor(color)

plt.ylabel('Random Value')
plt.grid(True, axis = 'y', linestyle = ':', color = 'gray', alpha = 0.3)

plt.title('Compared', pad = 30)
plt.show()

 

violinplot()

import matplotlib.pyplot as plt
import numpy as np
np.random.seed(10)  # 确保随机数的可重复性
# normal(均值, 标准差, 多少个数)
collectn_1 = np.random.normal(100, 10, 200)
collectn_2 = np.random.normal(80, 30, 200)
collectn_3 = np.random.normal(90, 20, 200)
collectn_4 = np.random.normal(70, 25, 200)

data_to_plot = [collectn_1, collectn_2, collectn_3, collectn_4] # 方便地将数据传递给小提琴图
plt.violinplot(data_to_plot)
plt.show()

polar()

import matplotlib.pyplot as plt
import numpy as np
barSlices = 12
theta = np.linspace(0.0, 2*np.pi, barSlices, endpoint = False)
r = 30*np.random.rand(barSlices)

plt.polar(theta, r)
plt.show()

import matplotlib.pyplot as plt
import numpy as np
barSlices = 12
theta = np.linspace(0.0, 2*np.pi, barSlices, endpoint = False)
r = 30*np.random.rand(barSlices)

plt.polar(theta, r, linestyle = '--', marker = '*', markerfacecolor = 'r', markersize = 10)
plt.show()

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 定义雷达图的维度数量
dim_num = 6
data = np.array([0.98, 0.97, 0.99, 0.98, 0.97, 0.96])
# 将数据复制一份,并添加第一个元素到末尾,以闭合雷达图
data = np.concatenate((data, [data[0]]))
angles = np.linspace(0, 2*np.pi, dim_num, endpoint = False)
# 将角度复制一份,并添加第一个元素到末尾,以闭合雷达图
angles = np.concatenate((angles, [angles[0]]))

plt.polar(angles, data, color = 'red')

radar_labels = ['力量', '速度', '技术', '发球', '防守', '经验']
# 将标签复制一份,并添加第一个元素到末尾,以闭合雷达图
radar_labels = np.concatenate((radar_labels,[radar_labels[0]]))

plt.thetagrids(angles * 180 /np.pi, labels = radar_labels)
# 在雷达图内填充颜色,增加透明度
plt.fill(angles, data, alpha = 0.25, color = 'red')
plt.show()

 errorbar()

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

x = np.arange(3)
y1 = np.array([2.22, 1.11, 0.55])
y2 = np.array([3.22, 0.51, 1.55])
y3 = np.array([4.22, 3.11, 2.55])
y4 = np.array([1.22, 2.11, 3.55])

# 测量偏差量
error1 = [0.66, 0.18, 0.11]
error2 = [0.63, 0.10, 0.31]
error3 = [0.62, 0.12, 0.21]
error4 = [0.60, 0.23, 0.21]
bar_width = 0.2

plt.bar(x, y1, bar_width)
plt.bar(x + bar_width, y2, bar_width, tick_label=["春季", "夏季", "秋季"])
plt.bar(x + 2*bar_width, y3, bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)

# 绘制误差棒
plt.errorbar(x,            y1,  yerr=error1, capsize=3, elinewidth=2, marker=',', color='k', linestyle='None')
plt.errorbar(x + bar_width, y2, yerr=error2, capsize=3, elinewidth=2, marker=',', color='k', linestyle='None')
plt.errorbar(x + 2*bar_width, y3, yerr=error3, capsize=3, elinewidth=2, marker=',', color='k', linestyle='None')
plt.errorbar(x + 3*bar_width, y4, yerr=error4, capsize=3, elinewidth=2, marker=',', color='k', linestyle='None')
plt.show()

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值