Python 数据分析——Matplotlib相关知识

Python 数据分析——Matplotlib相关知识

第二章 Matplotlib相关知识 —— 绘图 (二)


文章目录

  • Python 数据分析——Matplotlib相关知识
  • 前言
  • 一、Figure容器
    • 1.常见属性
    • 2. 添加或修改元素
  • 二、Axes容器
    • 常见属性
  • 三、Axis容器
  • 四、Tick容器
    • 常见属性
  • 参考


前言

上篇主要介绍了Artist的两种类型:primitivescontainers中的primitives 类型,这次主要是介绍containers 类型


Object container容器会包含一些primitives,并且容器还有它自身的属性。
比如Axes Artist,它是一种容器,它包含了很多primitives,比如Line2D,Text;同时,它也有自身的属性,比如xscal,用来控制X轴是linear还是log的。

一、Figure容器

1.常见属性

Figure attribute(属性) Description(描述)
axes 一个Axes实例的列表(包括Subplot)
patch Figure的背景矩形
images 一个FigureImages patch列表
legends 一个Figure Legend实例列表(不同于Axes.legends)
lines 一个Line2D实例的列表
texts 一个Figure Text实例列表
patches Patch的列表

matplotlib.figure.FigureArtist最顶层的container对象容器,它包含了图表中的所有元素。一张图表的背景就是在Figure.patch的一个矩形Rectangle
当我们向图表添加Figure.add_subplot()或者Figure.add_axes()元素时,这些都会被添加到Figure.axes列表中。

  • 示例
fig = plt.figure()
ax1 = fig.add_subplot(211) # 作一幅2*1的图,选择第1个子图
# 也可以写作 ax1 = fig.add_subplot(2,1,1)

ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3]) # 位置参数,四个数分别代表了(left,bottom,width,height)
print(ax1) 
print(fig.axes) # fig.axes 中包含了subplot和axes两个实例

Python 数据分析——Matplotlib相关知识_第1张图片


2. 添加或修改元素

通过Figure.add_subplot()、Figure.add_axes()来添加元素,通过Figure.delaxes()来删除元素。

  • 可以迭代或者访问Figure.axes中的Axes,然后修改这个Axes的属性。
  • 比如下面的遍历axes里的内容,并且添加网格线:
fig = plt.figure()
ax1 = fig.add_subplot(211)

for ax in fig.axes:
    ax.grid(True)

Python 数据分析——Matplotlib相关知识_第2张图片

  • 皮一下
fig, axs = plt.subplots(3, 1, figsize=(5, 6), tight_layout=True)
row = [1,2,3]
for i,ax in list(zip(row,fig.axes)):
    if i == 0:
        ax.grid(True)
    elif i == 1:
        ax.xaxis.grid()
    else:
        ax.yaxis.grid() 

Python 数据分析——Matplotlib相关知识_第3张图片


二、Axes容器

常见属性

Axes attribute(属性) Description(描述)
artists Artist实例列表
patch Axes所在的矩形实例
collections Collection实例
images Axes图像
legends Legend 实例
lines 一个Line2D实例
texts 一个Figure Text实例
xaxis matplotlib.axis.XAxis 实例
yaxis matplotlib.axis.YAxis 实例

  • 示例
fig = plt.figure()
ax = fig.add_subplot(111)
rect = ax.patch  # axes的patch是一个Rectangle实例
rect.set_facecolor('green')

Python 数据分析——Matplotlib相关知识_第4张图片


三、Axis容器

  • 官网实例
# plt.figure creates a matplotlib.figure.Figure instance
fig = plt.figure()
rect = fig.patch  # a rectangle instance
rect.set_facecolor('lightgoldenrodyellow')

ax1 = fig.add_axes([0.1, 0.3, 0.4, 0.4])
rect = ax1.patch
rect.set_facecolor('lightslategray')


for label in ax1.xaxis.get_ticklabels():
    # label is a Text instance
    label.set_color('red')
    label.set_rotation(45)
    label.set_fontsize(16)

for line in ax1.yaxis.get_ticklines():
    # line is a Line2D instance
    line.set_color('green')
    line.set_markersize(25)
    line.set_markeredgewidth(3)

plt.show()

Python 数据分析——Matplotlib相关知识_第5张图片

四、Tick容器

matplotlib.axis.Tick是从FigureAxesAxisTick中最末端的容器对象。
Tick包含了tick、grid line实例以及对应的label

常见属性

Tick attribute(属性) Description(描述)
Tick.tick1line Line2D实例
Tick.tick2line Line2D实例
Tick.gridline Line2D实例
Tick.label1 Text实例
Tick.label2 Text实例
  • 示例
import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.plot(100*np.random.rand(20))

# Use automatic StrMethodFormatter
ax.yaxis.set_major_formatter('${x:1.2f}')

ax.yaxis.set_tick_params(which='major', labelcolor='green',
                         labelleft=False, labelright=True)

plt.show()

Python 数据分析——Matplotlib相关知识_第6张图片


参考

1.Datawhale数据可视化小组开源项目:《Fantastic-Matplotlib》
2.Matplotlib官方文档

你可能感兴趣的:(Matplotlib,python,数据分析)