【使用matplotlib.pyplot绘图】
matplotlib.plot的基础绘图流程:
创建画布(选择是否绘制子图,指定画布大小,像素)
添加标题--添加x轴的名称,刻度与范围--添加y轴的名称,刻度与范围
绘制图形,设置图形的样式,颜色,背景,并添加图例
保存图形,显示图形
1.创建画布与创建子图
p1 = plt.figure(figsize=(8,6),dpi=144) #设置画布大小及分辨率
axes = p1.add_subplot(2,1,1) #创建一个2行1列的子图,绘制第1张子图
2. 添加画布内容
plt.title('标题') #添加标题
plt.xlabel('x') #添加x轴的名称
plt.ylabel('y') #添加y轴的名称
plt.xlim((0,1)) #x轴刻度范围
plt.ylim((0,1)) #y轴刻度范围
plt.xticks([0,1,2,3,4]) #x轴的刻度值
plt.yticks([0,1,2,3,4]) #y轴的刻度值
plt.legend(['a','b']) #添加图例
3.设置pyplot的动态rc参数
3.1 线条常用的rc参数:
#设置线条宽度,取0-10之间的数值,默认1.5
plt.rcParams['lines.linewidth']=3
#设置线条样式,可取'-','--','-.',':'4种,默认'-'
plt.rcParams['lines.linestyle']='-.'
#设置线条上点的形状,可取'o','D','h','.','S'等20种,默认为None
plt.rcParams['lines.marker']='D'
#设置点的大小,取0-10之间的数值,默认为1
plt.rcParams['lines.markersize']=3
3.2 调节字体显示为中文:
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
4.绘制基本图形
4.1绘制散点图
df.plot.scatter(x='col1',y='col2',marker='o',c='red',s=3,alpha=0.5)
# x,y接受array,表示对应的数据
marker为点的形状,c为点的颜色,s为点的大小,alpha为点的透明度(0-1)
4.2绘制折线图
df.plot(x='col1',y='col2',color='r',linestyle='-',marker='o',alpha=0.5)
# x,y接受array,表示对应的数据
marker为点的形状,color为点的颜色,linestyle为线条样式,alpha为点的透明度(0-1)
color常用参数:b-蓝色,g-绿色,r-红色,c-青色,m-品红,y-黄色,k-黑色
color,marker,linestyle三个参数可简写成'bo-'
4.3绘制直方图
df.col1.hist(bins=20)
4.4绘制条形图
plt.bar(x,y,width=0.8,color='red')
# width为条形图宽度(0-1),默认0.8
4.5绘制饼图
plt.pie(x,explode=0.01,labels=[],color='red',autopct='%1.1f%%',radius=5)
# explode为各项到圆心的距离,labels为每一项的名称,autopct为值显示形式,radius为饼图半径
4.6绘制箱图
plt.boxplot(x,notch=False,sym='o',vert=None,widths=None,labels=None,meanline=False)
# notch表示中间箱体是否有缺口,默认False sym为异常点形状,默认None
vert为图形是纵向还是横向,默认None widths为箱体宽度,labels为每个箱体的标签
meanline为是否显示均值线,默认False
【使用seaborn绘图】
1.seoborn的样式控制:sns.set()
sns.set(style='white',palette='muted',color_codes=True)
# style为图表的背景主题,有5种主题可以选择:
darkgrid 黑色网格(默认)
whitegrid 白色网格
dark 黑色背景
white 白色背景
ticks 四周都有刻度线的白背景
# palette为设置主体颜色,有6种可以选择:
deep,muted,pastel,bright,dark,colorblind
用despine进行边框控制:
white和ticks参数的样式,都可以删除上方和右方坐标轴上不需要的边框
despine(top=True, right=True, left=False, bottom=False,
offset=None, trim=False)
# 默认无参数的情况下,是删除上面及右边的边框
offset可设置边框的偏移距离,trim设置删除边框的范围
seaborn中设置画布大小及绘制子图:
fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(8,6))
sns.countplot(x,y,data,ax=axes[0,0])
sns.countplot(x,y,data,ax=axes[0,1])
sns.countplot(x,y,data,ax=axes[1,0])
sns.countplot(x,y,data,ax=axes[1,1])
2.绘制直方分布图:
displot:
sns.distplot(data, bins=None, hist=True, kde=True, rug=False,
fit=None,color=None, axlabel=None, ax=None)
# bins--设置矩形图数量
hist--是否显示条形图
kde --是否显示核密度估计图
rug --是否显示边际毛毯
fit --拟合的参数分布图形
kdeplot:
sns.kdeplot(data, shade=True) #shade控制阴影
jointplot(双变量分布):
sns.jointplot(x,y,data,kind='reg',color='g')
# kind有三种参数:
reg--绘制拟合直线
hex--绘制蜂窝状散点图
kde--绘制核密度图
pairplot(矩阵分布):
sns.pairplot(data,vars=['col1','col2'],hue='col3',palette='muted')
# vars可自定义选择几个变量
hue选择分类的字段
2.绘制条形图
barplot:
sns.barplot(x=None, y=None, hue=None, data=None,
order=None, hue_order=None, orient=None,
color=None, palette=None,capsize=None,
estimator=mean)
# hue--分类字段
order,hue_order--变量绘图顺序
orient--条形图是水平(v)还是竖直(h)
capsize--误差棒的宽度
estimator--每类变量的统计方式,默认mean
countplot(计数图):
sns.countplot(x=None, y=None, hue=None, data=None,
order=None, hue_order=None, orient=None,
color=None, palette=None)
3.绘制箱图
boxplot:
sns.boxplot(x=None, y=None, hue=None, data=None,
order=None, hue_order=None, orient=None,
color=None, palette=None, width=0.8,notch=False)
# hue--分类字段
width--箱图宽度
notch--中间箱体是否显示缺口,默认False
4.绘制散点图
lmplot:
sns.lmplot(x, y, data, hue=None, col=None, row=None,
palette=None, col_wrap=3, size=5,
markers='o')
# hue--散点图中的分类字段
col--列分类变量,构成子集
row--行分类变量
col_wrap--控制每行子图数量
size--控制子图高度
markers--点的形状