前言
软件行业成立之初,是由业务驱动数据。人们尝试各种手段从无纸化过度到信息化、数字化。渐渐的,产生的数据量越来越多,人们再次利用这些数据,在观察数据的形态结构中,发现了新的业务。
而其两者之间,重要的一环就是,数据可视化!
入门
本次选择使用Python及其绘图库matplotlib
,用到的编辑器依旧是VsCode
其一:概念
在可视化之前,我们需要一片空间。在这里叫做Figure实例,也就是画布。在画布上面,就是我们想要呈现的诸多元素,就是Axes实例。有了画布和图形,接下来就需要我们来使用一些API来组合控制。
其二:简单绘制
了解了一些概念后,现在让我们开始编写一些简单的代码
代码语言:python代码运行次数:0复制matplotlib 需要 使用pip安装后使用
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,1000) # 生成由0到10均匀的1000个点
y = np.cos(x) # 生成1000个点的cos函数
plt.plot(x,y,ls="-",lw=2,label="Figure 1") # 画图
plt.legend() # 显示图例
plt.show() # 显示图形
x
,y
是我们准备的数据,也就是最后要展示的数据。是元素之一。
plt
就是画布,通过使用ls:线条风格,lw:线条宽度,label:图例描述。
其三:其他常用图形
①柱状图
代码语言:python代码运行次数:0复制import matplotlib as mpl
import matplotlib.pyplot as plt
# 设置字体
mpl.rcParams["font.sans-serif"]=["SimHei"]
# 解决保存图像是负号'-'显示为方块的问题
mpl.rcParams["axes.unicode_minus"]=False
# 创建数据
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
# 画图
plt.bar(x,y,align="center",color="c",tick_label=["q","a","c","e","r","j","b","p"],hatch="/")
# 设置坐标轴标签
plt.xlabel("箱子编号")
plt.ylabel("箱子重量(kg)")
plt.show()
②饼图
pie()
③极线图
polar()
④气泡图
scatter()
实战:收支图
需求分析
在快节奏的生活中,非常容易陷入消费陷阱。我们做好预防的一个重要手段就是记账,然后每天进行收支分析,形成收支图
技术选型
收支中,最重要的就是比例。所以条状图是符合要求的。
代码实现
代码语言:python代码运行次数:0复制import matplotlib as mpl
import matplotlib.pyplot as plt
# 设置字体
mpl.rcParams["font.sans-serif"]=["SimHei"]
# 解决保存图像是负号'-'显示为方块的问题
mpl.rcParams["axes.unicode_minus"]=False
# 收入数据
income = [1000, 1200, 1500, 1800, 2000]
# 支出数据A
expense = [500, 600, 700, 800, 900]
# 支出数据B
expense2 = [100, 200, 300, 400, 500]
# 支出数据C
expense3 = [200, 300, 400, 500, 600]
# 创建一个绘图对象
plt.figure()
# 绘制收入柱状图y
plt.bar(range(len(income)), income, color='g', label='收入')
# 绘制支出柱状图
plt.bar(range(len(expense)), expense, bottom=income, color='r', label='支出A')
plt.bar(range(len(expense2)), expense2, bottom=income, color='b', label='支出B')
plt.bar(range(len(expense3)), expense3, bottom=income, color='y', label='支出C')
# 添加标题和轴标签
plt.title('月收入支出')
plt.xlabel('月份')
plt.ylabel('消费')
# 添加图例
plt.legend()
# 显示图形
plt.show()
总结
本文是matplotlib Api的简单使用,如果想要实现更复杂的效果,一是需要出色的设计,二是需要更进阶的Api用法。
彩蛋,让混元助手用matplotlib画一个企鹅