Python数据可视化matplotlib(二)—— 子图功能
2018-04-01 17:44
1386 查看
Python数据可视化matplotlib(二)—— 子图功能
在matplotlib中,整个图像为一个Figure对象,在Figure对象中可以包含一个或者多个Axes对象,每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.style.use('bmh')
plt.figure() 创建绘图对象
# plt.figure() 绘图对象 # plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, # FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs) fig1 = plt.figure(num=1,figsize=(4, 2)) # 创建一个图像对象 plt.plot(np.random.rand(50).cumsum(),'-.k') # 图像会显示在上面离它最近的图像对象中 fig2 = plt.figure(num=2,figsize=(4,2)) plt.plot(np.random.randint(1,11,size=5).cumprod(),'-.g') # num:图表序号,可以试试不写或都为同一个数字的情况,图表如何显示 # figsize:图表大小 # 当我们调用plot时,如果设置plt.figure(), # 则会自动调用figure()生成一个figure, 严格的讲,是生成subplots(111)
[<matplotlib.lines.Line2D at 0x2a51f9ec0b8>]
子图创建
先建立子图,后一次填充其他子图
# 子图创建1 - 先建立子图然后一次填充其他子图 fig = plt.figure(figsize=(10,6), facecolor = 'gray') ax1 = fig.add_subplot(2,2,1) # 创建一个图表,该图在2行2列的子图中的第一个位置,即一行左图 plt.plot(np.random.rand(50).cumsum(),'--g') ax4 = fig.add_subplot(2,2,4) #创建一个图表,位于2行2列,即二行右图 ax4.hist(np.random.rand(50).cumsum(),alpha=0.5,color='b') # 先创建图表figure,然后生成子图,(2,2,1)代表创建2*2的矩阵表格,然后选择第一个,顺序是从左到右从上到下 # 创建子图后绘制图表,绘制到最后一个子图 ax2 = fig.add_subplot(2,2,2) df2 = pd.DataFrame(np.random.rand(10,4), columns=['a','b','c','d']) ax2.plot(df2, linestyle='--',marker='.') # 也可以直接在子图后用图表创建函数直接生成图表
[<matplotlib.lines.Line2D at 0x2a5213fa2e8>, <matplotlib.lines.Line2D at 0x2a5213fa400>, <matplotlib.lines.Line2D at 0x2a5213fa550>, <matplotlib.lines.Line2D at 0x2a5213fa6a0>]
先创建一个figure,后填充子图
# 子图创建2 - 创建一个新的figure,并返回一个subplot对象的numpy数组 → plt.subplot fig,axes = plt.subplots(2,3,figsize=(10,4)) print(type(fig), '\n', type(axes)) ax1=axes[0, 1] ax1.plot(np.random.rand(100)) ax2 = axes[1,2] ax2.plot(np.random.randint(10,size=10).cumsum(),'--')
<class 'matplotlib.figure.Figure'> <class 'numpy.ndarray'> [<matplotlib.lines.Line2D at 0x2a52317a5c0>]
plt.subplot()参数调整
# plt.subplot()参数调整 fig,axes = plt.subplots(2,2,figsize=(6,4), sharex=True, sharey=True) # sharex,sharey:是否共享x,y刻度 for i in range(2): for j in range(2): axes[i, j].hist(np.random.randn(500),color='b', alpha=0.8) # 利用循环来填充数据 plt.subplots_adjust(wspace=0, hspace=0.1) # wspace,hspace:用于控制宽度和高度的百分比,比如subplot之间的间距
# 子图创建3 - 多系列图,分别绘制 df = pd.DataFrame(np.random.randn(1000, 4), columns=list('ABCD')) df = df.cumsum() df.plot(style ='--', alpha=0.5, grid=True,figsize=(8,6), subplots = True, layout=(2, 2)) plt.subplots_adjust(wspace=0,hspace=0.2) # plt.plot()基本图表绘制函数 → subplots,是否分别绘制系列(子图) # layout:绘制子图矩阵,按顺序填充
相关文章推荐
- Python数据挖掘04---matplotlib数据可视化分析
- Python数据可视化matplotlib(一)—— 图表的基本元素
- 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
- 【数据可视化】Daft:(Python)基于matplotlib绘制精美概率图模型
- 读书笔记-python,数据可视化之matplotlib简单实用
- [置顶] Python数据可视化—matplotlib笔记
- python 数据可视化 matplotlib学习二 : 对折线图使用颜色映射
- 读书笔记--python数据可视化--001_matplotlib学习
- python matplotlib数据可视化
- Python数据可视化编程通过Matplotlib创建散点图代码示例
- python数据可视化matplotlib的使用
- Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍
- 用Python获取股价数据,通过Matplotlib可视化
- Python进阶(三十八)-数据可视化の利用matplotlib 进行折线图,直方图和饼图的绘制
- python—matplotlib数据可视化实例注解系列-----设置标注字体样式(matplotlib颜色库)
- python——数据可视化:matplotlib,seaborn,pandas
- 教程 | 5种快速易用的Python Matplotlib数据可视化方法
- Python3 数据可视化之matplotlib、Pygal、requests
- Python数据可视化Matplotlib——Figure画布背景设置
- python的数据可视化库 matplotlib 和 pyecharts