【matplotlib】数据可视化

静态2D绘图

【关于seaborn库】
 即在matplotlib基础上面的封装,方便直接传参数使用
 绘图准备工作
import matplotlib as mpl
import matplotlib.pyplot as plt#导入主绘图库
plt.style.use('seaborn')#绘图样式设置为seaborn
mpl.rcParams['font.family']='serif'#图标字体设置为serif
  • 一维数据集

      plot函数是最基础的绘图函数,原则上需要
      **两组**数值
    
#关于random.standard_normal函数的用法
#返回标准正态分布-均值=0,标准差=1的概率密度随机数
random.standard_normal(size=())
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(1000)#生成固定的随机数生成种子
y = np.random.standard_normal(20)#提取生成的随机数
x = np.arange(len(y))#设置固定的整数值
plt.plot(x,y)#用x,y对象调用函数
show()
plt.grid(True)	#开启网格
plt.axis('equal')	#两个轴使用相同的刻度
plt.xlim()和plt.ylim()可以设置每个坐标轴的最小值和最大值
plt.plot(y.cumsum())
plt.xlim(-1,20)
plt.ylim(np.min(y.cumsum())-1,np.max(y.cumsum())+1)
plot默认绘制连续线条
plt.figure(figsize=(10,6))#增大图标尺寸
plt.plot(y.cumsum(),'b',lw=1.5)#按照数据绘制一条线宽为1.5个点的蓝色线
plt.plot(y.cumsum(),'ro')#按照数据绘制粗红色点
plt.xlabel('index')#定义x/y轴标签
plt.ylabel('value')
plt.title('A simple plot')
  • 二维数据集

#产生了一个二维样本数据集,在数据上调用cursum()来计算数据在0轴上的总和
y=np.random.standard_normal((20,2)).cumsum(axis=0)
#也可以将二维数据传递给plt.plot()。可以自动将包含的数据解释为单独的数据集(沿着第二维度)
plt.figure(figsize=(10,6))#增大图标尺寸
plt.plot(y,'b',lw=1.5)#按照数据绘制一条线宽为1.5个点的蓝色线
plt.plot(y,'ro')#按照数据绘制粗红色点
#此外,可以进一步地添加注释
plt.legend(loc=0)#接受不同地位置参数,0表示最佳位置
plt.plot(y[:0],lw=1.5,label='1st')#为数据子集定义标签
plt.plot(y[:1],lw=1.5,label='2nd')
#改变第一个数据子集地刻度(即伸缩)
y[:0] = y[:0]*100
#如果两个数据子集利用同一个坐标y轴有一条不易辨认,那么可以使用左右两个y轴
使用subplots()函数,可以直接访问底层绘图对象,例如可以用它生成和第一个子图共享x轴的第二个子图
fig,ax1 = plt.subplots()#定义图与轴对象
ax2 = ax1.twinx()#创建第二个轴对象并共享x轴
subplot()有3个整数参数:
- numrows 指定行数
- numcols  指定列数
- fignum     指定子图编号
plt.subplot(211)	#定义上方子图
plt.subplot(212)	#定义下方子图
  • 其他绘图样式

  1. 散点图可用于绘制1个金融时间序列的收益和另一个时间序列收益的对比
y = np.random.standard_normal((1000,2))
plt.figure(figsize=(10,6))
plt.plot(y[:0],y[:1],'ro')
plt.xlabel('1st')
plt.ylabel('2nd')
plt.title('Scatter PLot')

可通过plt.scatter(y[:0],y[:1],marker=‘0’)制作散点图
也允许假如第三个维度,通过不同颜色进行可视化

#c:包含3个数据集
#cmap:选择颜色映射
#marker:定义散点形状为粗点
plt.scatter(y[:0],y[:1],c=c.cmap='coolwarm',marker='o')
#该函数用于制作直方图
plt.hist(y,label=['1st','2nd'],bins=25)
#用boxplot()函数制作箱型图
plt.boxplot(y)
plt.setp(ax,xticklabels=['1st','2nd'])#设置单独的x轴标签

setp()可以设置(一组)图表实例的属性

line=plt.plot(data,'r')
  • 这个图表可以绘制一个函数的图像,并以图形的方式说明了在某个下限和上限之间函数图像下方区域的面积
    matplotlib可以处理LaTeX字体设置,并在图表中加入数学公式
def func(x):
    return 0.5*np.exp(x)+1  
a,b=0.5,1.5#积分上下限
x = np.linspace(0,2)#绘制x值
y = func(x)#绘制y值
Ix = np.linspace(a,b)#积分上下限的x值
Iy = func(Ix)#积分上下限的y值
verts = [(a,0)] + list(zip(Ix,Iy)) + [(b,0)]

交互式2D绘图

  • 基本图表
import pandas as pd
import cufflinks as cf
#导入plotly离线绘图功能
import plotly.offline as plyo
#开启笔记本绘图模式
plyo.init_notebook_mode(connected=True)
#标准正态分布伪随机数
a = np.random.standard_normal((250,5)).cumsum(axis=0)
index = pd.date_range('2019-1-1',#对象起始日期
                      freq='B',#频率“交易日”
                      periods=len(a))#所需期数
df = pd.DataFrame(100+5*a,#原始数据的线性变换
                  columns=list('abcde'),#单字符的列标题
                  index=index)#对象
df.head()#前5行数据
  • 金融图表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值