莫凡python-matplotlib-复习(5)

本文详细介绍了如何使用Python的Matplotlib库创建散点图,并通过annotate()和text()函数添加注释。从代码中,我们可以看到如何设置坐标轴,创建图例,以及使用不同的注释方式来解释散点数据。重点讲解了annotate()函数的参数用法,包括文本内容、xy坐标、文本位置、字体大小和箭头样式。同时,也展示了text()函数在指定位置添加文本的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一遍学习添加注释的时候,感觉参数好多,云里雾里。第二遍复习的时候重新梳理了一下,感觉程序设计时逻辑还是很清晰的。
一:添加散点
代码<code>

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2

plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)

# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))

# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')

# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')

plt.show()

输出:

         这里主要使用了scatter(x,y,s)函数,必填参数是x值y值和size大小值。没什么特别的,多练习多积累就好。
二:添加注释——annotate()注释函数
代码<code>

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2

plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)

# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))

# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')

# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')

# 画出虚线
plt.plot([x1, x1], [y1, 0], linestyle='--', linewidth='2.0', color='k')
plt.plot([x2, x2], [y2, 0], linestyle='--', linewidth='2.0', color='k')

# 加注释
plt.annotate(r'2*x1+1=%s' % y1, xy=(x1, y1), xycoords='data', xytext=(-30, +30), textcoords='offset points',
             fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))
plt.annotate(r'x**2=%s' % y2, xy=(x2, y2), xycoords='data', xytext=(+30, -30), textcoords='offset points',
             fontsize=12, arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))

plt.show()

输出:

        annotate(text,xy)函数,必填参数是文本内容和xy坐标值,如果只填写这俩的话,注释内容就默认放在散点附近。后续的参数是增加了更多的注释样式:位置调整——>1.xycoords='data',表示xy的坐标系就是‘data’这个坐标系;2.xytext=(-30,+30),表示文本内容左移30个单位,再上移30个单位,而且我还试验过,必须是xytext不能只写text,针对性指xy点;3.textcoords=‘offset points’,表示文本坐标系是‘偏移点’,即左移上移之后的位置;4.fontsize=12,表示字体大小为12号;5.arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'),这个是一个箭头道具,参数放映了箭头的样式,箭头的弯曲角度(这里arc3不能动,rad.2是可以调整的,我还不是很理解,等我搞明白了我再总结)。
三:添加注释——text()
代码<code>

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2

plt.figure(num='915')
l1, = plt.plot(x, y1, color='r', linewidth=2.0)
l2, = plt.plot(x, y2, color='y', linewidth=2.0)

# 设置坐标轴
axis = plt.gca()
axis.spines['right'].set_color('none')
axis.spines['top'].set_color('none')
axis.spines['left'].set_position(('data', 0))
axis.spines['bottom'].set_position(('data', 0))

# 设置图例
plt.legend(handles=(l1, l2), labels=('y=2*x+1', 'y=x**2'), loc='lower right')

# 标出散点
x1 = 1
x2 = 1.5
y1 = 2 * x1 + 1
y2 = x2 ** 2
plt.scatter([x1, x2], [y1, y2], s=50, color='k')

# 画出虚线
plt.plot([x1, x1], [y1, 0], linestyle='--', linewidth='2.0', color='k')
plt.plot([x2, x2], [y2, 0], linestyle='--', linewidth='2.0', color='k')


# 方法2加注释
plt.text(-3, 3, r'start at point(-3,3)')
plt.show()

 输出:

        这里需要注意text(x,y,text)函数中xy不是我们的散点,而是指文本起始书写位置。就这个点需要注意,其他的就还好了 。
        今日小结就到这里,瑞思拜!!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少卿不在大理寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值