目录
示例一:在示例一的数据基础上用面向对象的方式绘制带有红色虚线的平均气温折线图
前言
本章是针对python数据可视化的初学者学习如何使用matplotlib绘制简单的图表
提示:以下是本篇文章正文内容,下面案例可供参考
一、如何使用matplotlib绘制图表?
matplotlib库仅需开发人员编写几行代码即可绘制一个图表。下面结合面向对象的方式使用matplotlib库绘制一个简单的图表,示例代码如下:
导入pyplot模块:
import numpy as np
import matplotlib.pyplot as plt
准备数据:
data = np.array([1, 2, 3, 4, 5])
创建代表画布的Figure类的对象fig:
fig = plt.figure()
在画布fig上添加坐标系风格的绘图区域ax:
ax = fig.add_subplot(111)
绘制图表:
ax.plot(data)
展示图表:
plt.show()
二、使用matplotlib绘制简单图表
1.使用plot()绘制折线图
实例一:未来15天最高气温和最低气温
代码如下:
import matplotlib.pyplot as plt
import numpy as np #导入模块
x = np.arange(4, 19) #x轴数据
y_max = np.array([32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31]) #导入y轴数据
y_min = np.array([19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16])
fig = plt.figure() #创建类
ax = fig.add_subplot() #给画布fig上添加坐标系风格的绘图区域ax
ax.plot(x, y_max) #绘制气温最高气温线条
ax.plot(x, y_min) #绘制气温最低气温线条
plt.show() #展示图表
示例一:在示例一的数据基础上用面向对象的方式绘制带有红色虚线的平均气温折线图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4, 19)
y_max = np.array([32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31])
y_min = np.array([19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16])
y_mea = (y_max+y_min)/2.0 #将最高气温和最低气温相加取平均值
fig = plt.figure() #创建类
ax = fig.add_subplot() #给画布fig上添加坐标系风格的绘图区域ax
ax.plot(x, y_max)
ax.plot(x, y_min)
ax.plot(x, y_mea, 'r--') #绘制平均值气温,并设置颜色为红色,样式为虚线
plt.show()
2.绘制柱形图或堆积柱形图
实例一:2013—2019财年某电商平台的GMV
代码如下:
import matplotlib.pyplot as plt #导入模块
import numpy as np
# 1.准备某电商平台数据
x = np.arange(1,8)
y = np.array([10770, 16780, 24440, 30920, 37670, 48200, 57270])
# 3.绘制柱形图
plt.bar(x, y, tick_label=["FY2013", "FY2014",
"FY2015", "FY2016",
"FY2017", "FY2018", "FY2019"], width=0.5)
plt.show() #展示图表
3.绘制条形图或堆积条形图
示例:各商品种类的网购替代率
代码如下:
import matplotlib.pyplot as plt #导入模块
import numpy as np
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#准备数据
x = np.array([0.959, 0.951, 0.935, 0.924, 0.893,
0.892, 0.865, 0.863, 0.860, 0.856,
0.854, 0.835, 0.826, 0.816, 0.798,
0.765, 0.763, 0.67])
y = np.arange(1, 19)
labels = ["家政、家教、保姆等生活服务", "飞机票、火车票", "家具", "手机、手机配件",
"计算机及其配套产品", "汽车用品", "通信充值、游戏充值", "个人护理用品",
"书报杂志及音像制品", "餐饮、旅游、住宿", "家用电器",
"食品、饮料、烟酒、保健品", "家庭日杂用品", "保险、演出票务",
"服装、鞋帽、家用纺织品", "数码产品", "其他商品和服务", "工艺品、收藏品"]
#展示3%的误差
error = np.full(18,fill_value=0.3)
# 绘制带有误差的条形图
plt.barh(y,x,tick_label=labels,height=0.6,xerr=error)
#展示图表
plt.show()
4.绘制堆积面积图
使用stackplot()绘制堆积面积图
示例:物流公司物流费用统计
代码如下:
import numpy as np #导入模块
import matplotlib.pyplot as plt
# 1.准备数据
x = np.arange(1, 13)
y_a = np.array([198, 215, 245, 222, 200, 236, 201, 253, 236, 200, 266, 290])
y_b = np.array([203, 236, 200, 236, 269, 216, 298, 333, 301, 349, 360, 368])
y_c = np.array([185, 205, 226, 199, 238, 200, 250, 209, 246, 219, 253, 288])
# 2.绘制堆积面积图
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
labels = ['A公司','B公司','C公司']
colors = ['red','green','blue']
plt.stackplot(x,y_a,y_b,y_c,labels=labels,colors=colors)
# 3.在左上角展示标注图例
plt.legend(loc='upper left')
# 4.展示整张图表
plt.show()
总结
以上就是今天要讲的内容,本文介绍的是使用matplotlib绘制简单的图表。