在matplotlib中,常用Axes的API来设置边框线,坐标轴。当然,要先添加Axes的实例。比如
ax=plt.axes()
在对子图进行操作时,也可以使用
fig=plt.figure()
ax=fig.add_subplots(121)
有时会缩写成
fig, ax=plt.subplots(121)
#使用pyplot.subplot时,不需要提前添加pyplot.figure()对象。
以上都会返回一个Axes实例给ax。
ax.spines['left'].set_visible(False)
ax.spines['left'].set_color('none')
上图的代码(以某采样信号图为例子)
import numpy as np
import matplotlib.pyplot as plt
Fs=100 # 采样率为100Hz,信号时长t=10s
Size=1000 #采样点数=采样率*信号时长=100*10=1000
t=np.arange(0,Size)/Fs
x1=np.sin(2*np.pi*1*t)
#*******绘图部分********#
fig=plt.figure()
ax1= fig.add_subplot(121)
plt.plot(t,x1)
plt.title('without Spindle ')
#隐藏边框线
ax1=plt.gca()
ax1.spines['top'].set_visible(False)
ax1.spines['right'].set_visible(False)
ax1.spines['bottom'].set_visible(False)
ax1.spines['left'].set_visible(False)
#plt.xticks([])#隐藏x轴刻度
#plt.yticks([])#隐藏y轴刻度
ax1= fig.add_subplot(122)
plt.plot(t,x1)
plt.title('with Spindle ',c='red')
plt.show()
ax.spines['bottom'].set_linewidth('2.0')#设置边框线宽为2.0
ax.spines['bottom'].set_linestyle("--")
ax.spines['bottom'].set_color('none')
ax1.arrow(8, -1, 1, 0, head_width=0.15, head_length=1.5, ec='r', fc='r',color='red')
参数 | 参数含义 |
---|---|
(8,-1) | 箭头起点坐标 |
(1, 0) | 箭头增量坐标 |
head_width | 箭头宽度 |
head_length | 箭头长度 |
ec(edgecolor) | 边缘颜色 |
fc(fillcolor) | 填充颜色 |
上图的代码(以某采样信号图为例子)
import numpy as np
import matplotlib.pyplot as plt
Fs=100 # 采样率为100Hz,信号时长t=10s
Size=1000 #采样点数=采样率*信号时长=100*10=1000
t=np.arange(0,Size)/Fs
x1=np.sin(2*np.pi*1*t)
fig=plt.figure()
ax1= fig.add_subplot(121)
ax1=plt.axes()
plt.plot(t,x1)
plt.title('without Spindle ')
ax1=plt.gca()
ax1.spines['top'].set_linestyle("--")
ax1.spines['bottom'].set_linestyle("-")
ax1.spines['bottom'].set_linewidth('2.0')#设置边框线宽
ax1.spines['left'].set_linewidth('8')#设置边框线宽
ax1.spines['bottom'].set_color('red')
ax1.spines['bottom'].set_position(('data', -1))
ax1.arrow(8, -1, 1, 0, head_width=0.15, head_length=1.5, ec='r', fc='r',color='red')#在边框上画箭头
plt.show()
plt.xticks([])
plt.yticks([])
#横坐标轴刻度标签设置
#设置刻度的步长,数量。这里是0,0.75,1.5,2.25,3五个刻度
my_xticks=np.arange(0, 3.2, 0.75)
#自定义的字符列表,用于替换刻度数组。
my_xticks_label=[rr'xticks1',r'$xticks_{2}$','$xticks_{3}^{3}$',r'$V_{L_{th}}$', r'$V_{H_{th}}$'']
#用plt.xticks命令
plt.xticks(my_xticks, my_xticks_label,fontsize=16)
plt.xticks(np.arange(0, 3.2, 0.75), ['January', 'February', 'March', 'May', 'April'], rotation=20)
# 设置文本标签和特性.
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)
plt.xlabel('这是x轴标签\n(with newlines!)\n$y=x_{1}^2+x_{2}^3$',fontproperties=FontProperties(fname=r"c:\windows\fonts\simhei.ttf",size=fontsize)
plt.ylabel('this is vertical\ntest', multialignment='center')
(展示各种matplotlib的图形和源码)