数据可视化(二)

matpotlib基础理论

概述

matplotlib三层API

  • matplotlib.backend_bases.FigureCanvas 绘图区,所有的图像都是在绘图区完成的
  • matplotlib.backend_bases.Renderer 渲染器,可以近似理解为画笔,控制如何在 FigureCanvas 上画图。
  • matplotlib.artist.Artist 具体的图表组件,即调用了Renderer的接口在Canvas上作图。

前两者处理程序和计算机的底层交互的事项,第三项Artist就是具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。所以通常来说,数据可视化主要围绕matplotlib.artist.Artist类进行

Artist分类

  • primitive 基本要素,包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等
  • container 容器,用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis
    形象化解释如图
    在这里插入图片描述

matplotlib标准用法

标准使用流程:

  • 创建一个Figure实例
  • 使用Figure实例创建一个或者多个Axes(一种容器)或Subplot实例
  • 使用Axes实例辅助方法来创建primitive

示例如下:

import matplotlib.pyplot as plt
import numpy as np

# step 1 
#  创建了一个Figure实例
fig = plt.figure()

# step 2
# 创建了一个两行一列(即可以有两个subplot)的绘图区,并同时在第一个位置创建了一个subplot
ax = fig.add_subplot(2, 1, 1) 

# step 3
# 用Axes实例的方法画了一条曲线
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax.plot(t, s, color='blue', lw=2)

效果如图:
在这里插入图片描述

基本元素 ——primitives

2DLines

  • 通过类 matplotlib.lines.Line2D 完成,即构造函数matplotlib.lines.Line2D(args)
  • 基类:matplotlib.artist.Artist

常用参数

  • xdata:X轴上取值,默认range(1,len(ydata)+1)
  • ydata:y轴上取值
  • linewidth:线条的宽度
  • linestyle:线型
  • color:线条的颜色
  • marker:点的标记
  • markersize:标记的size

属性设置:

  • 直接在plot()函数中设置
  • 获得线对象,并对线对象进行设置
  • 获得线属性,并使用setp()函数设置

lines绘制:

  1. 绘制直线line
  2. errorbar绘制误差折线图

绘制直线方法:

  • plot方法绘制
  • Line2D对象绘制

误差折线图绘制:

  • 通过errorbar类实现
  • 构造函数:matplotlib.pyplot.errorbar(arg)

主要参数:

  • x:x轴上的取值
  • y:y轴上的取值
  • xerr:指定x轴水平的误差
  • yerr:指定y轴水平的误差
  • fmt:指定折线图中某个点的颜色,形状,线条风格,例如‘co–’
  • ecolor:指定error bar的颜色
  • elinewidth:指定error bar的线条宽度

patches

  • 二维图像类
  • 基类:matplotlib.artist.Artist
  • 构造函数:Patch(arg)

Rectangle:

  • 矩形类
  • 通过锚点xy及其宽度和高度生成
  • 构造函数:matplotlib.patches.Rectangle(x,y,width,height)

常见矩形图:

  1. hist直方图
  • 构造函数:matplotlib.pyplot.hist(arg**)

常用参数:

  • x: 数据集,直方图对数据集进行统计
  • bins: 统计的区间分布
  • range: tuple, 显示区间,range在没有给出bins时生效
  • density: bool,默认false,显示频数统计结果,为True则显示频率统计结果,频率统计结果=区间数目/(总数*区间宽度)
  • histtype: 可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar
  • align: 可选{‘left’, ‘mid’, ‘right’}之一,默认为’mid’,控制柱状图的水平分布,left或者right
  • log: bool,默认False,y坐标轴是否选择指数刻度
    stacked: bool,默认为False,是否为堆积状图
  1. bar条形图

Guess you like

Origin blog.csdn.net/qq_42194332/article/details/121384731