python----Matplotlib(四)

Python大法好 之 Matplotlib

有时候,图中的数据太多,或者像下图一样线条设置需要时线条太粗,把坐标轴的数据挡住了,这时候我们可以设置他们的一些样式,把线条的透明度设置一下,就可以更好的看到坐标轴和线条的位置关系了
python----Matplotlib(四)

代码

import matplotlib.pyplot as plt 
import numpy as np 

x = np.linspace(-3, 3, 50)
y = 0.1 * x

plt.figure()
plt.plot(x, y, linewidth = 10,alpha=0.7)
plt.ylim(-2, 2)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

##重要部分
for label in ax.get_xticklabels() + ax.get_yticklabels():
	label.set_fontsize(13)
	label.set_bbox(dict(facecolor='red', edgecolor='None', alpha=0.7))

plt.show()

运行结果
python----Matplotlib(四)

代码解释
实现上面效果的是##重要部分后面那一段for循环,他那里的意思就是获取横竖坐标轴上的labels,然后为这些标签改了一下字体大小,set_bbox的作用是给这些标签都设置一个后面的框,facecolor是设置框的颜色,edgecolor是设置框边边上的颜色(None就是没有颜色的意思了,因为边框很难看,所以把它弄没了),alpha是设置框的透明度
同理,如果把设置透明的的alpha属性写在plot里面,函数线条的透明度就改变啦,这样,即使描绘的线再多,线条再粗,即使阻挡了你观看坐标轴上的数据,设置了这些,就可以更好地观看全部的数据了。

scatter()

前面一章由粗略介绍这个东西了,他和plot类似,只不过plot是以线性的方式打印函数图,scatter可以打印出散点图,类似下图

import matplotlib.pyplot as plt 
import numpy as np 

n = 1024 
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
T = np.arctan2(X, Y) #FOR COLOR VALUE

plt.scatter(X, Y, s=75, c=T, alpha=0.5)

plt.xlim((-1.5, 1.5))
plt.ylim((-1.5, 1.5))
plt.xticks(())
plt.yticks(())

plt.show()

运行结果
python----Matplotlib(四)
看起来,很漂亮,这只是随机生成的一张散点图,这里不重要,但我还是随便讲解一下代码是什么意思把
首先用np.random.normal()生成1024个x和y坐标,用arctan2() 为(x, y)随机生成颜色, 然后在plt.scatter() 把散点打印出来,其中就是把x和y传进去,这样就生成了1024个散点,s为size,c为color,传入的是T,透明度alpha设置为0.5

xlim()和ylim()设置的是散点分布的范围,xticks(())和yticks(())没传入任何数据就是把两个坐标轴设置为无
这里介绍scatter还只是随意入门,让自己和你们了解一下scatter是一个打印散点图的函数,后面可能会深入学习

不积跬步无以至千里