01|Figure和Subplot:
matplotlib的图像都位于figure对象中,相当于一块画布。figure的属性figsize是用来设置figure的大小的。subplot是用来存放坐标系的,一个figure中可以有多个subplot。
%matplotlib inline
import matplotlib.pyplot as plt
from numpy.random import randn
import numpy as np
fig=plt.figure()
ax1=fig.add_subplot(2,2,1)#表示在figure中建立2*2个坐标系,ax1位于第一个坐标中
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
在程序开头加(%matplotlib)是为了显示figure,如果不加则不会跳出figure图框。而(%matplotlib inline)则是直接显示在编程界面,不重新跳出做图框。
如果我们没有指定在哪个ax上进行作图,matplotlib会默认选择最后一个(如果没有则创建一个)上进行绘制。下面这条命令就没有指定。
plt.plot(randn(50).cumsum(),"k--")
ax1.hist(randn(100),bins=20,color='k',alpha=0.3)#在ax1上作图
ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))#在ax2上作图
也可以直接一次性创建多个图框,然后在使用的时候进行索引使用就行,比如下面的subplots(2,3)就是一次性建立两行三列个坐标,而axes[0,1]则表示利用第0行第2列对应的图框。
fig,axes=plt.subplots(2,3)
_=axes[0,1].hist(randn(100),bins=20,color='k',alpha=0.3)#加“_=”视为让其不输出randn产生的随机数组
subplots的参数:除几行几列外,还有sharex和sharey,表示x(y)轴的刻度是否要保持相等的刻度。默认情况是False,即不相等。
调整subplot周围的间距:默认情况下,matlibplot会在subplot外围以及sbuplot之间留下一定的边距。图像的大小和间距是相关的,如果你调整了图像大小,间距也会自动调整。利用Figure的subplots_adjust方法可以用来修改间距。
plt.subplots_adjust(left=None,right=None,top=None,bottom=None,wspace=None,hspace=None)#分别表示左右上下边距,以及宽度和高度百分比。
02|颜色,标记和线型:
常用颜色用英文字母的首字母来代替。
b---blue c---cyan g---green k----black
m---magenta r---red w---white y----yellow
标记是用在线性图上来强调实际数据点的。
. Point marker
, Pixel marker
o Circle marker
v Triangle down marker
^ Triangle up marker
< Triangle left marker
> Triangle right marker
1 Tripod down marker
2 Tripod up marker
3 Tripod left marker
4 Tripod right marker
s Square marker
p Pentagon marker
* Star marker
h Hexagon marker
H Rotated hexagon D Diamond marker
d Thin diamond marker
| Vertical line (vlinesymbol) marker
_ Horizontal line (hline symbol) marker
+ Plus marker
x Cross (x) marker
线性是表示线的形状。
- 实线
-- 短线
-. 短点相间线
: 虚点线
plot(randn(30).cumsum(),color="k",linestyle="--",marker="o")
03|刻度、标签和标题:
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
ticks=ax.set_xticks([0,250,500,750,1000])#设置x轴的刻度,y轴把x换成y即可
lables=ax.set_xticklabels(["one","two","three","four","five"],rotation=30,fontsize="small")#设置x轴对应的标签,y轴把x换成y即可
ax.set_title("my first matplotlib plot")#为坐标轴设置标题
04|图例:
在添加subplot的时候传入label参数,然后调用ax.legend()或plt.legend()即可。
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(),label="one")#创建label标签
ax.plot(randn(1000).cumsum(),label="two")#创建label标签
ax.plot(randn(1000).cumsum(),label="three")#创建label标签
ax.legend(loc="best")#loc是用来说明图例的放置位置
END
碧茂课堂精彩课程推荐:
1.Cloudera数据分析课;
2.Spark和Hadoop开发员培训;
3.大数据机器学习之推荐系统;
4.Python数据分析与机器学习实战;
详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂
现在注册互动得海量学币,大量精品课程免费送!