ax[0].axhline(0) # 在 0 的位置加一条线,h横着
ax[1].axvline(0) # v 竖着
遍历图,改变特定柱的颜色
fig, ax = plt.subplots()
v = ax.bar(x, y, color = 'lightblue') # v 是所有柱的集合
for bar, height in zip(v, y): # 遍历条形图
if height < 0:
bar.set(color = 'red') # 改变特定柱的颜色
多个柱形图画在一起
pos = list(range(len(y1)))
w = 0.2 # 自定义柱的宽度
plt.bar(pos, y1, w, color = 'g')
plt.bar([p+w for p in pos], y2, w, color = 'b') # 新图往后一个w 宽度
plt.bar([p+w*2 for p in pos], y3, w, color = 'r')
data1 = [random.gauss(15,10) for i in range(500)]
data2 = [random.gauss(5,5) for i in range(500)]
bins = np.arange(-50,50,2.5)
plt.hist(data1, bins=bins,label='1',alpha=0.7)
plt.hist(data2, bins = bins, label='2',alpha=0.7)
plt.legend()
填充画图
x = np.linspace(0,10,100)
y = np.sin(x)
plt.fill_between(x,y)
data = [np.random.normal(0, std, 100) for std in range(1,4)]
# for循环,构造了3组符合不同标准差正态分布的数据
# data是list,有3组数据,每组数据都是ndarraay结构,每组100个
fig = plt.figure(figsize = (8,6))
# 画盒图 boxplot
# notch 样式中位数书否收缩
# sym 离群点的表示 's'是方块
# vert 横着还是竖着
bplot = plt.boxplot(data, notch=True,sym='s',vert=True, patch_artist=True)
plt.xticks([y+1 for y in range(len(data))], ['x1','x2','x3'])
plt.xlabel('x',size=16)
plt.title('box', size=16)
# 盒图颜色填充,画图是必须指定patch_artist=True
color = ["pink", "lightblue", "lightgreen"]
for b,c in zip(bplot['boxes'], color):
b.set_facecolor(c)
# 画成黑白的图
for c in bplot.keys(): # 每个盒子有不同组成部分key
for line in bplot[c]: # 把这些key都设置黑色
line.set_color('black')
小提琴图violinplot
小提琴图和盒图表达的意义相近
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(12,5))
data = [np.random.normal(0,std,100) for std in range(6,10)]
# showmeans-展示平均数 showmedians-展示中位数
axes[0].violinplot(data, showmeans=False, showmedians=False)
axes[0].set_title('violin')
axes[1].boxplot(data, sym = '+')
axes[1].set_title('box')
for ax in axes:
ax.yaxis.grid(True)# 加上横线
ax.set_xticks([y+1 for y in range(len(data))]) # 设置y轴刻度
Comments | NOTHING