Matplotlib.pyplot
包含了很多excel
中包含的图形,这里介绍几个经常在excel
中绘制的图形。
*饼图
相关的函数为 pie
:
import matplotlib.pyplot as plt
#显示中文配置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.style.use("ggplot")
plt.title(u"阿猫学编程 - 季度销售")
labels = u'第一季度',u'第二季度',u'第三季度',u'第四季度'
sizes = [15,30,45,10]
explode = (0,0.02,0,0) #表示将第二季度那一块凸显出来
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.axis('equal')
plt.show()
显示饼图如下:
柱状图
相关函数 bar
:
import matplotlib.pyplot as plt
#显示中文配置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.style.use("ggplot")
#!/usr/bin/env python
# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np
names = (u'小明', u'小红')
subjects = (u'语文', u'数学', u'英语')
scores = ((65, 90, 75), (85, 80, 90))
bar_width = 0.25
index = np.arange(len(scores[0]))
# 绘制「小明」的成绩
rects1 = plt.bar(index, scores[0], bar_width, color='#0072BC', label=names[0])
# 绘制「小红」的成绩
rects2 = plt.bar(index + bar_width, scores[1], bar_width, color='#ED1C24', label=names[1])
# X轴标题
plt.xticks(index + bar_width, subjects)
# Y轴范围
plt.ylim(ymax=100, ymin=0)
# 图表标题
plt.title(u'阿猫学编程 - 柱状图对比')
# 图例显示在图表下方
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05), fancybox=True, ncol=5)
# 添加数据标签
def add_labels(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width() / 2, height, height, ha='center', va='bottom')
# 柱形图边缘用白色填充,纯粹为了美观
rect.set_edgecolor('white')
add_labels(rects1)
add_labels(rects2)
plt.show()
显示的图表如下:
等高线
相关函数 contourf
,contour
和 clabel
import matplotlib.pyplot as plt
import numpy as np
# 定义等高线高度函数
def f(x, y):
return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(- x ** 2 - y ** 2)
# 数据数目
n = 256
# 定义x, y
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 生成网格数据
X, Y = np.meshgrid(x, y)
# 填充等高线的颜色, 8是等高线分为几部分
plt.contourf(X, Y, f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)
# 绘制等高线
C = plt.contour(X, Y, f(X, Y), 8, colors = 'black', linewidth = 0.5)
# 绘制等高线数据
plt.clabel(C, inline = True, fontsize = 10)
plt.show()