Matplotlib Axes类
Matplotlib Axes类详细操作教程
Axes对象是具有数据空间的图像区域。给定的图形可以包含许多轴,但给定的Axes对象只能在一个图中。轴包含两个(或在3D情况下为三个)Axis对象。Axes类及其成员函数是使用OO接口的主要入口点。
通过调用add_axes()方法将Axes对象添加到图中。它返回轴对象并在位置rect [left,bottom,width,height]添加一个轴,其中所有数量都是图形宽度和高度的分数。
参数
以下是Axes类的参数 -
rect - 4个长度序列的[左,底,宽,高]数量。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
ax=fig.add_axes([0,0,1,1])
轴类的以下成员函数为图添加了不同的元素 -
图例
axes类的legend()方法为绘图图形添加了一个图例。它需要三个参数 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
ax.legend(handles, labels, loc)
其中label是一系列字符串,处理一系列Line2D或Patch实例。loc可以是指定图例位置的字符串或整数。
位置字符串 |
位置代码 |
best |
0 |
upper right |
1 |
upper left |
2 |
lower left |
3 |
lower right |
4 |
right |
5 |
center left |
6 |
center right |
7 |
lower center |
8 |
upper center |
9 |
center |
10 |
axes.plot()
这是轴类的基本方法,它将一个数组的值与另一个数组的值绘制为线或标记。plot()方法可以有一个可选的格式字符串参数来指定行和标记的颜色,样式和大小。
颜色代码
字符标记 |
颜色 |
b |
Blue |
g |
Green |
r |
Red |
b |
Blue |
c |
Cyan |
m |
Magenta |
y |
Yellow |
k |
Black |
w |
White |
标记代码
字符标记 |
描述 |
. |
点标记 |
o |
圆形标记 |
x |
X标记 |
D |
钻石标记 |
H |
六角标记 |
s |
方形标记 |
+ |
加号标记 |
线条样式
字符 |
描述 |
- |
实线 |
-- |
虚线 |
-. |
单点划线 |
: |
虚线 |
H |
六角标记 |
以下示例以线图的形式显示电视和智能手机的广告费用和销售数字。代表电视的线是带有黄色和方形标记的实线,而智能手机线是带有绿色和圆形标记的虚线。
参考实现代码 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-24
#! /usr/bin/env python
#coding=utf-8
import matplotlib.pyplot as plt
# 显示中文设置...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
y = [1, 4, 9, 16, 25,36,49, 64]
x1 = [1, 16, 30, 42,55, 68, 77,88]
x2 = [1,6,12,18,28, 40, 52, 65]
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
l1 = ax.plot(x1,y,'ys-') # solid line with yellow colour and square marker
l2 = ax.plot(x2,y,'go--') # dash line with green colour and circle marker
ax.legend(labels = ('电视', '智能手机'), loc = 'upper left') # legend placed at lower right
ax.set_title("广告对销售的影响")
ax.set_xlabel('媒介')
ax.set_ylabel('销售')
plt.show()
执行上面示例代码,得到以下结果 -