Matplotlib的详细使用及原理(二)

简介: Matplotlib是一个Python库,用于创建二维和三维图表,它是NumPy的扩展。使用时,首先创建`Figure`实例,然后在其上添加`Axes`或`Subplot`。每个图表元素(如线、散点、直方图)都是一个`Artist`对象,具有属性如`alpha`、`visible`等,可以通过`get_`和`set_`方法进行访问和修改。`Figure`和`Axes`对象都有对应的`patch`属性,分别代表它们的背景矩形。图形中的线条(`Line2D`)是基本要素之一,可配置颜色、线型、宽度等属性。

Matplotlib的详细使用及原理(一)+https://developer.aliyun.com/article/1543859?spm=a2c6h.13148508.setting.14.1fa24f0e1MwmMO


matplotlib标准用法


matplotlib的标准使用流程为:


  1. 创建一个Figure实例


  1. 使用Figure实例创建一个或者多个AxesSubplot实例


  1. 使用Axes实例的辅助方法来创建primitive


>>>在matplotlib中,一个图形对象(Figure)中的坐标轴(Axes),Figure是一个顶层容器,用于容纳整个绘图区域。而Axes则是Figure内部的一个子容器,用于绘制具体的图形。


>>>Matplotlib库中的primitive,通常译为“原始对象”,是用于创建和操作图形的基元。这些基元包括线、矩形、圆形等,它们是构成复杂图形的基本元素。通过使用这些primitive,开发者可以灵活地定制和配置他们的图形。


import matplotlib.pyplot as plt
import numpy as np
 
# step 1 
# 我们用 matplotlib.pyplot.figure() 创建了一个Figure实例
fig = plt.figure()
 
# step 2
# 然后用Figure实例创建了一个两行一列(即可以有两个subplot)的绘图区,并同时在第一个位置创建了一个subplot
ax = fig.add_subplot(2, 1, 1) # two rows, one column, first plot
 
# 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)



自定义你的Artist对象


Artist属性


在图形中的每一个元素都对应着一个matplotlib Artist,且都有其对应的配置属性列表。


Figure本身包含一个Rectangle,Rectangle的大小就是Figure的大小;你可以用来设置Figure的背景色和透明度。


每个Axes边界框(默认白底黑边),也有一个Rectangle,通过它可以设置Axes的颜色、透明度等。


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是否绘制


plt.figure().patch
plt.axes().patch



属性调用方式


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



我们还需要知道如何获取该对象。


Artist包含两种对象:基本要素-primitives 和 容器-containers。

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

container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis


在matplotlib中曲线的绘制,主要是通过类 matplotlib.lines.Line2D 来完成的。

它的基类: matplotlib.artist.Artist


matplotlib中线-line的含义:它表示可以是连接所有顶点的实线样式,也可以是每个顶点的标记。


它的构造函数:


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:线条的颜色


  • markersize:标记的size



有三种方法可以用设置线的属性:


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




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


x = range(0,5)
y = [2,5,7,8,10]
line ,= plt.plot(x, y, '-') # '-'表示线段的样式为实线
# 逗号在这段代码中的作用是将plt.plot(x, y, '-')的返回值赋给变量line。
# plt.plot()函数返回一个包含线条对象的列表,这里只有一个线条对象,所以使用逗号将返回值解包并赋值给line。
line.set_antialiased(False) # 关闭抗锯齿功能,使得线段的边缘更加平滑。



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


x = range(0,5)
y = [2,5,7,8,10]
lines = plt.plot(x, y)
plt.setp(lines, color='r', linewidth=10)




Matplotlib的详细使用及原理(三)+https://developer.aliyun.com/article/1543863?spm=a2c6h.13148508.setting.15.1fa24f0eFbYRn7

相关文章
|
3月前
|
前端开发 数据可视化 API
Matplotlib的详细使用及原理(一)
`matplotlib`是Python的数据可视化库,用于生成高质量的2D图形,支持静态、动态和交互式图表。它是pandas和seaborn等库的底层基础。基本绘图通过`pyplot.subplots`创建figure和axes,然后用`plot`函数绘制线条。例如,`plt.plot([1, 2, 3, 4], [1, 4, 2, 3])`可绘制简单折线图。matplotlib有三种API层次,包括FigureCanvas、Renderer和Artist,其中Artist对应具体的图形元素。此外,matplotlib的绘图接口分为显式创建和pyplot隐式创建两种方式。
|
3月前
|
Python 容器
Matplotlib的详细使用及原理(三)
这篇文章介绍了如何使用Python的Matplotlib库绘制线条。主要内容包括两种绘制线条的方法:
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(一)
matplotlib绘图的核心原理讲解(超详细)(一)
matplotlib绘图的核心原理讲解(超详细)(一)
|
9天前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
33 16
|
1天前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。
|
9天前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
22天前
|
数据可视化 物联网 区块链
探索Python中的数据可视化:使用Matplotlib和Seaborn绘制图表探索未来:区块链、物联网与虚拟现实的融合趋势与应用前景
【8月更文挑战第30天】本文旨在引导读者通过Python编程语言,利用Matplotlib和Seaborn库,轻松掌握数据可视化技术。文章以浅显易懂的语言,结合实用的代码示例,从基础的图表绘制到高级定制功能,逐步深入讲解如何在数据分析中运用这些工具。无论你是编程新手还是希望提升可视化技能的开发者,都能在这篇文章中找到有价值的信息,让你的数据“活”起来。
|
22天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python中的数据可视化:使用Matplotlib库绘制图表
【8月更文挑战第30天】数据可视化是数据科学和分析的关键组成部分,它帮助我们以直观的方式理解数据。在Python中,Matplotlib是一个广泛使用的绘图库,提供了丰富的功能来创建各种类型的图表。本文将介绍如何使用Matplotlib库进行数据可视化,包括安装、基本概念、绘制不同类型的图表以及自定义图表样式。我们将通过实际代码示例来演示如何应用这些知识,使读者能够轻松地在自己的项目中实现数据可视化。
|
2月前
|
数据可视化 数据挖掘 Python
数据界的颜值担当!Python数据分析遇上Matplotlib、Seaborn,可视化美出新高度!
【7月更文挑战第24天】在数据科学领域,Python的Matplotlib与Seaborn将数据可视化升华为艺术,提升报告魅力。Matplotlib作为基石,灵活性强,新手友好;代码示例展示正弦波图的绘制与美化技巧。Seaborn针对统计图表,提供直观且美观的图形,如小提琴图,增强数据表达力。两者结合,创造视觉盛宴,如分析电商平台销售数据时,Matplotlib描绘趋势,Seaborn揭示类别差异,共塑洞察力强的作品,使数据可视化成为触动人心的艺术。
47 7