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--点的形状
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容

  • 表扬自己,辛苦努力坚持了这么久,也算是突破自我,好运连连
    a588949b05f7阅读 31评论 0 0
  • 【回顾】市场需求 第二节 市场供给 【知识点1】供给及市场供给 【知识点2】影响供给的因素 【知识点3】供给函数、...
    阳光wmm阅读 239评论 0 0
  • 突如一夜春风来,珠帘半卷徐徐声····· 当凌晨四点的黎明奏响了晨曦的轮回交替时, 不由得让我想起了那个万分思念和...
    尘陌似锦阅读 269评论 0 1
  • 儿子成长趣事 刚生下儿子时,看见他一团小小的肉球,睡着时表情丰富,一会儿眼憋的绯红,一会儿又傻笑,弄得我看...
    c7a092293df9阅读 100评论 0 0
  • 用心工作 用脚步丈量 祖国的大好河山 慢慢发掘
    秋天的甜豆阅读 156评论 0 0