文章目录
一、 简介
matplotlib有强大的变换功能,并提供了预定义的极坐标、对数坐标等坐标系。
matplotlib还有丰富的文本和箭头注释功能,可以方便的在指定位置添加注释,并且注释文本支持latex公式。
Matplotlib系列将Matplotlib的知识和重点API,编制成思维导图和重点笔记形式,方便记忆和回顾,也方便应用时参考,初学者也可以参考逐步深入学习。
二、 思维导图

三、 坐标轴变换及注释
1. 坐标轴变换
matplotlib有强大的变换功能,但是通常我们不需要直接去写代码变换,常用的极坐标、对数坐标等有预设的方法。
1.1 极坐标系
极坐标绘图需要在创建子图的时候设置参数projection="polar"。
示例如下:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax=fig.add_subplot(111, projection="polar")
theta=np.linspace(0, np.pi*2, 50)
ax.plot(theta, theta/2)
plt.show()
注意fig.subplots函数不支持projection参数。

极坐标显示设置
- 极轴坐标最大、最小值设置
ax.set_rlim(0.5,1):经向坐标范围为0.5至1。相当于同时使用set_rmax,set_rminax.set_rmax(1):设置经向最大坐标值为1ax.set_rmin(0.5):设置经向最小坐标值为0.5
- 极轴坐标网格显示设置
ax.set_rgrids(np.arange(0, 1, 0.2)):设置经向网格ax.set_rticks(np.arange(0,0.8,0.2)):设置经向网格范围,与set_rgird完全相同
- 极轴坐标设置为对数坐标
ax.set_rscale('symlog'):设置为对数坐标。set_rscale(‘linear’)设置为线型坐标
- 极轴坐标刻度标签位置设置
ax.set_rlabel_position('90'):经向文本标签在90度反向位置显示
1.2 对数坐标系
x轴为对数坐标
- ax.semilogx(x,y)
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.subplots()
x=np.array([1,10,100,1000,10000])
y=(np.log10(x)-2)**2
ax1.semilogx(x,y)
ax1.grid(True)
fig.tight_layout()
plt.show()

y轴为对数坐标
- ax.semilogy(x,y)
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.subplots()
y=np.array([1,10,100,1000,10000])
x=(np.log10(x)-2)**2
ax1.semilogy(x,y)
ax1.grid(True)
fig.tight_layout()
plt.show()

x,y轴同为对数坐标
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure()
ax1=fig.subplots()
y=np.array([1,10,100,1000,10000]

最低0.47元/天 解锁文章
4015

被折叠的 条评论
为什么被折叠?



