Matplotlib数据可视化学习打卡-Task02

学习目标:

Task02 - 艺术画笔见乾坤

学习目录:

一、概述
1. matplotlib的三层api
2. Artist的分类
3. matplotlib标准用法
二、自定义你的Artist对象
1. Artist属性
2. 属性调用方式
三、基本元素 - primitives
1. 2DLines
2. patches
3. collections
4. images
四、对象容器 - Object container
1. Figure容器
2. Axes容器
3. Axis容器
4. Tick容器
五、练习
1.思考题
2.绘图题


打卡内容:

一、概述

1. matplotlib的三层api

matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。
就和人作画的步骤类似:
1. 准备一块画布或画纸
2.准备好颜料、画笔等制图工具
3.作画

所以matplotlib有三个层次的API:
1.绘图区(画布):matplotlib.backend_bases.FigureCanvas
2.渲染器(画笔),控制其在 FigureCanvas 上画图:matplotlib.backend_bases.Renderer
3.图表组件(想画的图,比如图形、文本、线条的设定):matplotlib.artist.Artist

2. Artist的分类

Artist有两种类型:primitivescontainers

  • primitive:是基本要素,是作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等
  • containers:是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis
    在这里插入图片描述

3. matplotlib标准用法

matplotlib的标准使用流程为:

  1. 创建一个Figure实例
  2. 使用Figure实例创建一个或者多个Axes或Subplot实例
  3. 使用Axes实例的辅助方法来创建primitive
    举个例子🌰:
    在这里插入图片描述

二、自定义你的Artist对象

1. Artist属性

在图形中的每一个元素都对应着一个matplotlib Artist,且都有其对应的配置属性列表。
Figure.patch属性:是一个Rectangle,代表了图表的矩形框,它的大小就是图表的大小, 并且可以通过它设置figure的背景色和透明度。
Axes.patch属性:也是一个Rectangle,代表了绘图坐标轴内部的矩形框(白底黑边), 通过它可以设置Axes的颜色、透明度等。

每个matplotlib Artist都有以下属性:

.alpha属性:透明度。值为0—1之间的浮点数
.axes属性:返回这个Artist所属的axes,可能为None
.figure属性:该Artist所属的Figure,可能为None
.label:一个text label
.visible:布尔值,控制Artist是否绘制
# .patch
plt.figure().patch
plt.axes().patch

在这里插入图片描述

2. 属性调用方式

Artist对象的所有属性都通过相应的 get_* 和 set_* 函数进行读写。

#例如下面的语句将alpha属性设置为当前值的一半:
a = o.get_alpha()
o.set_alpha(0.5*a)
#如果想一次设置多个属性,也可以用set方法:
o.set(alpha=0.5, zorder=2)

可以使用 matplotlib.artist.getp(o,“alpha”) 来获取属性,如果指定属性名,则返回对象的该属性值;如果不指定属性名,则返回对象的所有的属性和值。

import matplotlib
# Figure rectangle的属性
matplotlib.artist.getp(fig.patch)

在这里插入图片描述

三、基本元素 - primitives

primitives是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文本text,矩形Rectangle,图像image等

1. 2DLines(曲线)

在matplotlib中曲线的绘制,主要是通过类 matplotlib.lines.Line2D 来完成的。
它的构造函数:

class matplotlib.lines.Line2D(xdata, ydata, linewidth=None, linestyle=None, color=None, marker=None, markersize=None, markeredgewidth=None, markeredgecolor=None, markerfacecolor=None, markerfacecoloralt=‘none’, fillstyle=None, antialiased=None, dash_capstyle=None, solid_capstyle=None, dash_joinstyle=None, solid_joinstyle=None, pickradius=5, drawstyle=None, markevery=None, **kwargs)

  • xdata:需要绘制的line中点的在x轴上的取值,若忽略,则默认为range(1,len(ydata)+1)
  • ydata:需要绘制的line中点的在y轴上的取值
  • linewidth:线条的宽度
  • linestyle:线型
  • color:线条的颜色
  • marker:点的标记
  • markersize:标记的size
a. 设置Line2D的属性的三种方法

1)直接在plot()函数中设置

x = range(0,5)
y = [2,3,6,9,15]
plt.plot(x,y, linewidth=3) # 设置线的粗细参数为3

在这里插入图片描述

2)通过获得线对象,对线对象进行设置

x = range(0,5)
y = [2,3,6,9,15]
line, = plt.plot(x, y, '-')
line.set_antialiased(False) # 关闭抗锯齿功能

在这里插入图片描述

3)获得线属性,使用setp()函数设置

x = range(0,5)
y = [2,3,6,9,15]
lines = plt.plot(x, y)
plt.setp(lines, color='r', linewidth=5)

在这里插入图片描述

b. 绘制lines的两种方法

1)pyplot方法绘制

import matplotlib.pyplot as plt
x = range(0,5)
y = [2,5,7,8,10]
plt.plot(x,y)

在这里插入图片描述2)Line2D对象绘制

import matplotlib.pyplot as plt
from matplotlib.lines import Line2D      

fig = plt.figure()
ax = fig.add_subplot(111)
line = Line2D(x, y)
ax.add_line(line)
ax.set_xlim(
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值