当前位置:   article > 正文

金融数据分析与挖掘实战4.1 Matplotlib(一)_金融数据挖掘实战

金融数据挖掘实战

数据可视化包Matplotlib

Matplotlib是Python中一个二维绘图包,能够非常简单的实现数据可视化。Matplotlib最早由John Hunter于2002年启动开发,其目的是为了构建一个Matlab式的绘图函数接口。在Anaconda发行版中已经集成了Matplotlib库,直接导入pyplot模块就可以使用了。导入方法为:import matplotlib.pyplot as plt

import matplotlib.pyplot as plt
plt.figure(1)               # 创建第一个画布
plt.subplot(2, 1, 1)         # 画布划分为2×1图形阵,选择第1张图片
  • 1
  • 2
  • 3
<matplotlib.axes._subplots.AxesSubplot at 0x1884e0c2c50>
  • 1

常见的画图函数说明
在这里插入图片描述

import numpy as np
plt.figure(1)  # 创建画布
x = np.linspace(0, 1, 1000)
plt.subplot(2, 1, 1)  # 分为2×1图形阵,选择第1张图片绘图
plt.title('y=x^2 & y=x')  # 添加标题
plt.xlabel('x')  # 添加x轴名称‘x’
plt.ylabel('y')  # 添加y轴名称‘y’
plt.xlim((0, 1))  # 指定x轴范围(0,1)
plt.ylim((0, 1))  # 指定y轴范围(0,1)
plt.xticks([0, 0.3, 0.6, 1])  # 设置x轴刻度
plt.yticks([0, 0.5, 1])  # 设置y轴刻度
plt.plot(x, x ** 2)
plt.plot(x, x)
plt.legend(['y=x^2', 'y=x'])  # 添加图例
plt.savefig('1.png')  # 保存图片
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.2)
y = np.sin(x)
plt.title('sin曲线')
plt.plot(x, y)
plt.savefig('2.png')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

值得注意的是默认的pyplot字体并不支持中文字符的显示,因此需要通过修改font.sans-serif参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“-”无法正常显示,因此需要同时修改axes.unicode_minus参数。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.2)
y = np.sin(x)
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置字体为SimHei
plt.rcParams['axes.unicode_minus'] = False  # 解决负号“-”显示异常
plt.title('sin曲线')
plt.plot(x, y)
plt.savefig('2.png')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

绘图过程中还有一个关键的问题就是坐标轴的字符刻度表示问题,比如绘制2018年-2019年某产品各个季度的销售额走势图,两年各季度的销售数据依次为:100、104、106、95、103、105、115、100(单位:万元)。一般的绘图代码如下:

import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8])                #季度标号
y = np.array([100,104,106,95,103,105,115,100]) #销售额
plt.rcParams['font.sans-serif'] = 'SimHei'     # 设置字体为SimHei
plt.title('某产品2018-2019各季度销售额')
plt.plot(x, y)
plt.xlabel('季度标号')  
plt.ylabel('销售额(万元)')  
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

横轴的意义没有突显出来,造成了图像的可读性比较差。实际上可以用xxx年xxx季度来表示,这样图像的可读性就更强。对横轴进行字符刻度标注可以通过xticks函数来实现。示例代码如下:

x = np.array([1,2,3,4,5,6,7,8])                #季度标号
y = np.array([100,104,106,95,103,105,115,100]) #销售额
v=['2018年一季度','2018年二季度','2018年三季度','2018年四季度',
   '2019年一季度','2019年二季度','2019年三季度','2019年四季度']
plt.rcParams['font.sans-serif'] = 'SimHei'     # 设置字体为SimHei
plt.title('某产品2018-2019各季度销售额')
plt.plot(x, y)
plt.xlabel('季度')  
plt.xticks(x, v, rotation = 45) #v为与x对应的字符刻度,rotation为旋转角度
plt.ylabel('销售额(万元)')  
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/168319
推荐阅读
相关标签
  

闽ICP备14008679号