饼图
饼图(pie char)是一个划分为几个扇形的圆形统计图表,一般用于描述频率或百分比之间的相对关系。在饼图中,每个扇区的弧长(以及圆心角和面积)的大小与其所表示的数量呈固定比例。画饼图使用 pyplot 中的pie
函数,它的基本语法如下:
pie(x, expode=None, labels=None, autopic=None, **kwargs) | |
---|---|
x | 数组,每个扇区的比例 |
expode | 可选参数,数组,每个扇区突出的大小 |
labels | 可选参数,字符串数组,每个扇区的标签 |
autopct | 可选参数,字符串或函数,每个扇区显示的数字样式 |
**kwargs | 可选参数,定义其他属性,例如扇区阴影 shadow,起始角度 startangle 等 |
# 导入工具包
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontManager # 调用 matplotlib 中的字体,用于显示中文
# 这两行代码使得 pyplot 画出的图形中可以显示中文
plt.rcParams['font.sans-serif'] = ['Heiti TC'] # 黑体, 宋体:'Songti SC'
plt.rcParams['axes.unicode_minus'] = False
labels = ['果汁', '矿泉水', '绿茶', '其他', '碳酸饮料']
x = [6, 10, 11, 8, 15]
explode = [0, 0.1, 0, 0, 0] # 突出显示第二个扇区
plt.pie(x, explode=explode, labels=labels, autopct='%.2f%%', shadow=True, startangle=90)
plt.legend() # 显示标签
plt.show()
箱线图
箱线图(box plot)是一种用来显示数据统计分布情况的图形,包括数据的最大值、最小值、中位数、分位数等特征。画箱线图使用 pyplot 中的boxplot
函数,它的基本语法如下:
boxplot(x, notch=false, vert=false, **kwargs) | |
---|---|
x | 输入数据 |
notch | 可选参数,是否为锯齿状的箱线图 |
vert | 箱线图是否为竖直,否则为水平 |
**kwargs | 可选参数,定义其他属性 |
假设有下面的学生成绩单:
课程 | 学生A | 学生B | 学生C | 学生D | 学生E | 学生F | 学生G | 学生H | 学生I | 学生J | 学生K |
---|---|---|---|---|---|---|---|---|---|---|---|
英语 | 76 | 90 | 97 | 71 | 70 | 93 | 86 | 83 | 78 | 85 | 81 |
西方经济学 | 93 | 81 | 76 | 88 | 66 | 79 | 83 | 92 | 78 | 86 | 78 |
市场营销学 | 74 | 87 | 85 | 69 | 90 | 80 | 77 | 84 | 91 | 74 | 70 |
财务管理 | 68 | 75 | 70 | 84 | 73 | 60 | 76 | 81 | 88 | 68 | 75 |
统计学 | 55 | 91 | 68 | 73 | 84 | 81 | 70 | 69 | 94 | 62 | 71 |
画出它们的箱线图如下:
# 导入工具包
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontManager # 调用 matplotlib 中的字体,用于显示中文
# 这两行代码使得 pyplot 画出的图形中可以显示中文
plt.rcParams['font.sans-serif'] = ['Heiti TC'] # 黑体, 宋体:'Songti SC'
plt.rcParams['axes.unicode_minus'] = False
scores = [[76, 90, 97, 71, 70, 93, 86, 83, 78, 85, 81],
[93, 81, 76, 88, 66, 79, 83, 92, 78, 86, 78],
[74, 87, 85, 69, 90, 80, 77, 84, 91, 74, 70],
[68, 75, 70, 84, 73, 60, 76, 81, 88, 68, 75],
[70, 73, 92, 65, 78, 87, 90, 70, 66, 79, 68],
[55, 91, 68, 73, 84, 81, 70, 69, 94, 62, 71]]
courses = ('英语', '西方经济学', '市场营销学', '财务管理', '基础会计学', '统计学')
plt.boxplot(scores,vert=False)
plt.yticks(np.arange(1, 7), courses) # 更改横坐标刻度为课程名字
plt.show()