【Matplotlib04】文字图例尽眉目

目录

一、前言

二、 Figure和Axes上的文本

2.1. 文本API示例

 2.2. text - 子图上的文本

2.3. xlabel和ylabel - 子图的x,y轴标签

2.4. title和suptitle - 子图和画布的标题

2.5. annotate - 子图的注解

 2.6. 字体的属性设置

 三、Tick上的文本

3.1.简单模式

 3.2 Tick Locators and Formatters

3.2.1 Tick Formatters(设置标签的格式)

3.2.2 Tick Locators(设置标签的位置)

 3.2.3 补充:日期型刻度(formatter和locator的结合使用)

 四、图例 legend

4.1设置图例位置

4.2  设置图例边框及背景

4.3 设置图例标题

 五、思考题

5.1请尝试使用两种方式模仿画出下面的图表(重点是柱状图上的标签),本文学习的text方法和matplotlib自带的柱状图标签方法bar_label


一、前言

第四回的内容主要是介绍figure和ax上的文字方法。

一个没有文字注释的图不是一个好图。-----沃自基朔德

二、 Figure和Axes上的文本

2.1. 文本API示例

pyplot API

OO API

description

text

text

在子图axes的任意位置添加文本

annotate

annotate

在子图axes的任意位置添加注解,包含指向性的箭头

xlabel

set_xlabel

为子图axes添加x轴标签

ylabel

set_ylabel

为子图axes添加y轴标签

title

set_title

为子图axes添加标题

figtext

text

在画布figure的任意位置添加文本

suptitle

suptitle

为画布figure添加标题

上面的命令是介绍了通过pyplot API和objected-oriented API分别创建文本的方式。

OO方式是面向对象的,可以对指定ax进行添加文本的操作,pyplot 只能对单个对象进行操作。

下面的代码是综合性的代码,看懂下面的代码就算掌握入门了。

fig = plt.figure()
ax = fig.add_subplot()


# 分别为figure和ax设置标题,注意两者的位置是不同的
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
ax.set_title('axes title')

# 设置x和y轴标签
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')

# 设置x和y轴显示范围均为0到10
ax.axis([0, 10, 0, 10])

# 在子图上添加文本
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
        bbox={'facecolor': 'red', 'alpha': 0.5, 'pad': 10})

# 在画布上添加文本,一般在子图上添加文本是更常见的操作,这种方法很少用
fig.text(0.4,0.8,'This is text for figure')

ax.plot([2], [1], 'o')
# 添加注解
ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
arrowprops=dict(facecolor='black', shrink=0.05));

 2.2. text - 子图上的文本

text的调用方式为

Axes.text(x, y, s, fontdict=None, **kwargs)

参数说明:

  •         x,y为文本出现的位置,默认状态下即为当前坐标系下的坐标值,
  •    s为文本的内容,
  •    fontdict是可选参数,用于覆盖默认的文本属性,
  •    **kwargs为关键字参数,也可以用于传入文本样式参数

重点解释下fontdict和**kwargs参数,这两种方式都可以用于调整呈现的文本样式,最终效果是一样的,不仅text方法,其他文本方法如set_xlabel,set_title等同样适用这两种方式修改样式。通过一个例子演示这两种方法是如何使用的。

fig = plt.figure(figsize=(10,3))
axes = fig.subplots(1,2)

# 使用关键字参数修改文本样式
axes[0].text(0.3, 0.8, 'modify by **kwargs', style='italic',
        bbox={'facecolor': 'red', 'alpha': 0.5, 'pad': 10});

# 使用fontdict参数修改文本样式
font = {'bbox':{'facecolor': 'red', 'alpha': 0.5, 'pad': 10}, 'style':'italic'}
axes[1].text(0.3, 0.8, 'modify by fontdict', fontdict=font);

 

matplotlib中所有支持的样式参数请参考官网文档说明,大多数时候需要用到的时候再查询即可。

下表列举了一些常用的参数供参考。

Property

Description

alpha

float or None 透明度,越接近0越透明,越接近1越不透明

backgroundcolor

color 文本的背景颜色

bbox

dict with properties for patches.FancyBboxPatch 用来设置text周围的box外框

color or c

color 字体的颜色

fontfamily or family

{FONTNAME, 'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'} 字体的类型

fontsize or size

float or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'} 字体大小

fontstyle or style

{'normal', 'italic', 'oblique'} 字体的样式是否倾斜等

fontweight or weight

{a numeric value in ran

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值