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

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

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



前言

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


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

一、Figure容器

1.常见属性

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

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两个实例

在这里插入图片描述


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)

在这里插入图片描述

  • 皮一下
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() 

在这里插入图片描述


二、Axes容器

常见属性

Axes attribute(属性)Description(描述)
artistsArtist实例列表
patchAxes所在的矩形实例
collectionsCollection实例
imagesAxes图像
legendsLegend 实例
lines一个Line2D实例
texts一个Figure Text实例
xaxismatplotlib.axis.XAxis 实例
yaxismatplotlib.axis.YAxis 实例

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

在这里插入图片描述


三、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()

在这里插入图片描述

四、Tick容器

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

常见属性

Tick attribute(属性)Description(描述)
Tick.tick1lineLine2D实例
Tick.tick2lineLine2D实例
Tick.gridlineLine2D实例
Tick.label1Text实例
Tick.label2Text实例
  • 示例
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()

在这里插入图片描述


参考

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值