Matplotlib绘图库入门(四):绘制柱状图,饼图,等高线

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()

显示的图表如下:

等高线

相关函数 contourfcontourclabel

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()

相关参考如下:https://segmentfault.com/a/1190000004103325

更多的可以参看官网:https://matplotlib.org/api/pyplot_summary.html

转载请标明来之:http://www.bugingcode.com/

更多教程:阿猫学编程

Matplotlib绘图库入门 系类文章