Matplotlib绘图(一)-边框线及坐标轴的设置

在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。

1.边框线的设置

1.1 边框线隐藏

图1

  1. 方法一
    设置axes的spines可视属性为FALSE
ax.spines['left'].set_visible(False)
  1. 方法二
    设置axes的spines的颜色属性为’none’
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()

1.2 边框线线宽、线型、颜色

在这里插入图片描述

  1. 设置边框线宽
ax.spines['bottom'].set_linewidth('2.0')#设置边框线宽为2.0
  1. 设置边框线线型
ax.spines['bottom'].set_linestyle("--")
  1. 设置边框线颜色
ax.spines['bottom'].set_color('none')
  1. 画箭头
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()

2.坐标轴的设置

在这里插入图片描述

2.1 隐藏坐标刻度及修改坐标轴刻度的文本

  • 隐藏坐标轴刻度
plt.xticks([])
plt.yticks([])
  • 修改坐标轴刻度文本
  1. matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs)[source]
    可用修改设置坐标轴刻度。
    其中,
    ticks-----是存储刻度位置的列表或数组
    labels—是用于替换刻度的字符列表
    **kwargs—用于设置文本的格式
    示例
#横坐标轴刻度标签设置

#设置刻度的步长,数量。这里是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) 
 # 设置文本标签和特性.

2.2 修改坐标轴标签的文本

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 画廊

(展示各种matplotlib的图形和源码)

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页