一、matplotlib简介
matplotlib是一个Python 2D绘图库,开发者仅需要几行代码就可以生成曲线图、柱状图、散点图甚至动画。需要另外安装,一条命令搞定。
pip install matplotlib
它的绘图接口在matplotlib.pyplot模块中,pyplot提供和MATLIB绘图API类似的接口。
1、matplotlib图表基本元素
-
坐标系标题 title
-
X轴和Y轴 axis
-
轴标签 xlabel 、ylabel
-
轴刻度 tick 标注坐标轴的分隔,有最小刻度、最大刻度。
-
绘图区域 axes
2、基本的API
figure对象:绘图对象,在figure图表之上可以增加多个子图然后在子图上绘制点和线。
子图:就是一个figure窗口可以画多个小图片。
# 通过pyplot获取figure对象
fig = plt.figure()
# 绘制一个子图,返回一axes坐标轴
ax = fig.add_subplot(1,1,1)
plot方法:plot(x,y) 接收X轴坐标列表和Y轴坐标列表,扩展的参数可以设置线条形状,颜色等
下面是一个最简单的例子,Y=X^2
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3,4],[1,4,9,16])
plt.show()
二、用matplotlib画基金走势图
读取csv文件格式如下,每天一条记录,第二列是基金净值,第三列是累计净值,然后画出图表。
。。。。。
2020-10-20,1.1752,1.3321
。。。。。
2021-09-18,2.4824,2.6160
。。。。。
代码
生成的图
代码解析
# 设置X轴刻度,以月为单位
ax.xaxis.set_major_locator
(mdates.MonthLocator())
# 设置X轴格式,如果是数值就不用设置,日期需要设置
ax.xaxis.set_major_formatter
(mdates.DateFormatter("%Y-%m"))
#使用numpy加载以逗号分割的csv文件,返回三个列表数据
np.loadtxt
# 设置X轴标签倾斜45放置
label.set_rotation(45)
注:matplotlib实际项目中应用接触比较少,网页上画统计报表图现在比较常用的是百度的ECharts,我们收银台销售报表用的也是EChars,后端Java接口提供数据,前端使用EChars将图渲染出来。