2021-05-08

【使用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--点的形状

你可能感兴趣的:(2021-05-08)