Matplotlib Python 画图工具包教程学习笔记2 标签标注


1.标注 Annotation

1.1 plt.text

这个句柄起着文本标注的作用

  • 参数1和2分别传入文本标注的坐标
  • 参数3传入正则表达式作为显示在图片上的文本
  • 参数4传入进一个键值对的方式(如CSS)(fontdict=)来设置文本的字体

1.2 plt.annotate

标注点的使用,主要用于对图中的某一散点进行解释说明

  • 第一个参数是正则表达式
  • 第二个参数是需要注释的点的坐标
  • arrowprops : 显示标注是否需要箭头以及箭头的类型
  • xytext:文本偏移注释点的偏移量

1.3 scatter

与plt.plot不同plt.scatter主要负责在图上画出散点,而不会画出它们之间的连线

  • 参数1和2负责传进去图中点的横纵坐标
  • s:散点的半径(散点圆盘的大小)
  • color:散点的颜色

1.3.1 测试样例

# -*- coding:utf-8 -8-
"""
Author: FeverTwice
Date: 2021--08--23
"""

import matplotlib.pyplot as plt
import numpy as np

n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)         # for color value

# 值对应一个color map ,alpha是透明度
# plt.scatter(X,Y,s=75,c=T,alpha=0.5)
plt.scatter(np.arange(5),np.arange(5))

# plt.xlim((-1.5,1.5))
# plt.ylim((-1.5,1.5))
plt.xticks(())      #什么都不填表示没有
plt.yticks(())


plt.show()

1.3.2 测试效果

2

3


1.4 案例 y = 2 x + 1 y = 2x + 1 y=2x+1

1.4.1 测试代码

# -*- coding:utf-8 -8-
"""
Author: FeverTwice
Date: 2021--08--23
"""

import matplotlib.pyplot as plt
import numpy as np

#标注

x = np.linspace(-3,3,50)
y = 2*x+1

plt.figure(num=1,figsize=(8,5),)
plt.plot(x,y)

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

# 设置坐标轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

# x轴绑定在-1里面
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

#画出点
x0=1
y0=2*x0+1
plt.scatter(x0,y0,s=50,color='b')
plt.plot([x0,x0],[0,y0],'k--',lw=2.5)   #黑色的虚线

# method 1
######################

#注:py3.6应用offset points
plt.annotate(r'$2x+1=%s$' % y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset points',
             fontsize=15,arrowprops = dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))

# method 2
######################

plt.text(-3.7,3,r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',
         fontdict={'size':16,'color':'red'})

plt.show()

1.4.2测试效果

4


2. 坐标轴透明度和背景设置

对于直线的宽度过大,可覆盖住坐标轴的情况,我们通过调节坐标轴的背景颜色以及深度来设置坐标轴

2.1 测试案例

# -*- coding:utf-8 -8-
"""
Author: FeverTwice
Date: 2021--08--23
"""

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3,3,50)
y = 0.1*x

plt.figure()

#记得要打上zoder=1
plt.plot(x,y,linewidth =10,zorder=1)
plt.ylim(-2,2)

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

# 设置坐标轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

# x轴绑定在-1里面
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

for label in ax.get_xticklabels()+ax.get_yticklabels():
    label.set_fontsize(12)
    label.set_bbox(dict(facecolor='white',edgecolor='None',alpha=0.7))

plt.show()

2.2 测试结果

5


写在最后

本文章为【莫烦Python】Matplotlib Python 画图教程课程对应的一些课堂笔记,并参考了Matplotlib的开发者文档,仅为各位同志学习参考之用

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值