金融数据分析与挖掘实战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张图片
<matplotlib.axes._subplots.AxesSubplot at 0x1884e0c2c50>

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

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

在这里插入图片描述

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

在这里插入图片描述

值得注意的是默认的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()

在这里插入图片描述

绘图过程中还有一个关键的问题就是坐标轴的字符刻度表示问题,比如绘制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()

在这里插入图片描述

横轴的意义没有突显出来,造成了图像的可读性比较差。实际上可以用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()

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值