tf好朋友之matplotlib的使用——坐标能见度设置
坐标太多挡住其它标记,挡住彼此怎么办!那必然是,给他们一个透明度啊!
坐标能见度设置常用函数
set_bbox方法
对坐标进行透明度设置的关键性代码是:
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor='white',
edgecolor='None',
alpha=0.7,
zorder=2))
该代码的执行顺序是首先获取x轴和y轴的坐标tick的标签labels,然后设置字体的大小为12,之后使用set_bbox方法,传入一个字典,字典的参数可以包含以下部分:
1、facecolor:代表其前景色。
2、edgecolor:代表其边框颜色。
3、alpha:代表透明度为多少,float型0~1。
4、zorder:是图层次序的关键参数,越大表示在越上层,越小表示在越底层,其含义与PowerPoint内的图层次序类似,因此不仅要设置labels的zorder,还要设置线的zorder。
plt.plot(x,y1,zorder = 1)
应用示例
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50)
y1 = 5*x**2 - 1
plt.xlim((-1,1))
plt.ylim((-2,5))
newTicks = np.linspace(-1,1,11)
plt.xticks(newTicks)
# y轴字体差别,设置成斜体
plt.yticks([-2,-1.0,0,1.5,3],
[r'$really\ bad$',r'$little\ bad$',r'$normal$',r'$little\ good$',r'$pretty\ good$'])
plt.plot(x,y1,zorder = 1)
# 获得当前的axis
ax = plt.gca()
# 设置图像的上边、右边axis为无色
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 设置x轴坐标在下部
ax.xaxis.set_ticks_position('bottom')
# 设置x轴位于图像y=0处
ax.spines['bottom'].set_position(('data', 0))
# 设置x轴坐标在左部
ax.yaxis.set_ticks_position('left')
# 设置y轴位于图像x=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, zorder=2))
plt.show()
结果为: