matplotlib手册

1.基本图形

散点图

plt.scatter(x,y,s=20,c='b',marker='')

折线图

plt.plot(x,y)

plt.plot_date(date,y,'-')    plt的plot_date默认画的的是散点

条形图

plt.bar(left=, height= , color='blue',width=0.8) 常用位置与默认参数

plt.barh(left=0,bottom=,height=)

示例:

index=np.arange(4)

s_a=[1,2,3,4]

s_b=[2,3,4,5]

bar_width=0.3

并列图形

plt.bar( index, s_a, bar_width, color='b' )

plt.bar(index+bar_width ,  s_b ,  bar_width , color='r' )

层叠:

plt.bar(index,a,wd)

plt.bar(index,b,wd,color='r',bottom=a)

直方图

单变量直方图:y轴表示频率

plt.hist(x,bins=10,clolor='blue',normed=True)   normed标准化,不显示个数显示频率

双变量直方图,xy表示维度,颜色亮度表示分布

饼状图

plt.axes(aspect=1)  将x与y轴的比例调为1,不为1则饼状图的图形有压缩

plt.pie(x= , labels=labels,autopct='%0.f%%' , explode=[ ] , shadow=True)  

参数: x为数据,labels为标签  autopet显示各区域的半分比 explode为与x同长度,将图形突出显示  shadow显示阴影

示例:


plt.axes(aspect=1)

X=[1,2,3,4]

labels=['a','b','c','d']

explode=[0,0.05,0.08,0]

plt.pie(X,labels=labels,explode=explode,autopct='%.2f')

箱型图

显示数据分散情况

上边缘,上四分位数,中位数,下四分位数,下边缘,异常值

data=np.random.normal(size=1000,loc=0,scale=1)

plt.boxplot(data,sym='o',whis=1.5)  sym调整异常值点的形状,

whis调整上下边缘长度,为比例值,whis越大,边缘越长

示例2:箱型图对比

data=np.random.normal(size=(1000,4))

lables=['a','b','c','d']

plt.boxplot(data,lables=lables)

2.颜色和样式

基本颜色

内建颜色

b(blue)  g(grenn)  r(red)  c(cyan)  m(magenta)  y(yellow)  k(boack)  w(white)

其他颜色:灰色 RGB 十六进制

y=np.arange(5)

plt.plot(y,color='r')

plt.plot(y+1,color='0.5')    灰度

plt.plot(y+2,color='#ff00ff')  

plt.plot(y+3,color=(0.1,0.2,0.3))


点的形状

marker 显示指定marker时有线段,隐式时,按位置指定时只有形状

点的形状有多种,不同形状默认使用不同颜色

. , o v < > 1 2 3 4 8 s  p * h H + x D d

线的形状

- 实线    -- 虚线    -. 点划线  :点线

样式字符串 颜色 点形 线形 字符串表示'

3.面向对象

多图与子图

FigureCanvas  Figure Axes 三个对象

fig=plt.figure()          画布对象,每个figure对象是一个图

ax1=fig.add_subplot(2,2,1)     子图,设定规格和位置

ax1.plot(x,y)   在子图上绘制图形

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,2,3)

ax4=fig.add_subplot(2,2,4)

4.格式

4.1网格

ax.grid(color='r', linestyle=' ')  设置网格效果,可以改颜色和线性

4.2图例

plt.plot(x,x,label='figneme')

plt.plot(x,x**2, label='secordname')

plt.legend()        显示设置的图例,位置默认best

plt.legend( [ 'a', 'b'  ] , loc=[0~10] , ncol=2)   位置参数 loc ,用数字代替位置,0是自适应,ncol设置图例的列数,图例很多时将图例扁平化换

4.2.1设置图例的方法

方法1:绘图时设置

plt.plot(x,x,label='name') 

ax.plot(x,x,label='b')   在绘图时用label参数设置图例名称,用该方法时必须用plt.legend ()和ax.legend()将图例显示出力

方法2:legend()方法设置

plt.legend([ ]) 和 ax.legend([ ])  传入列表参数即为设置图例,同时设置位置和列数

4.3坐标轴范围

plt.axis()  显示坐标轴范围

plt.axis([ -10, 10  , 0 ,10  ]) 可以直接传入列表参数设置坐标轴范围 

plt.xlim() 显示x的范围 ,传入列表参数为设置,plt.ylim([ 0,100]) ,也可以用ymin 和ymax 指定单边

plt.xlim([0,10]) 或 plt.xlim(xmin=0,xmax=10) 相同效果

ax.set_xlim() 和 ax.set_ylim()为对应的面向对象的方式设置坐标轴范围

4.4坐标轴刻度

ax=plt.gca()    plt.gca()函数用来获取当前图形的坐标轴

ax.locator_params(nbins=20)  可以指定轴 plt.locator_params('x' , nbins=5) 

4.5 副坐标轴

方法1:plt方式

plt.plot()  

plt.twinx() 添加一个副坐标轴,默认0到1

plt.plot(x,y) 默认的图形对应副坐标轴

方法2:面向对象方式

x=np.arange(2,20)

y1=x*x

y2=np.log(x)

fig=plt.figure()

ax1=fig.add_subplot(111)

ax1.plot(x,y1)

ax1.set_ylabel('y1')

ax1.set_xlabel('y1 vs  y2')

ax1.set_ylim([0,400])

ax2=ax1.twinx()

ax2.plot(x,y2)

ax2.set_ylabel('y2')

plt.show()

类似twinx() 方法,也有twiny()方法,共享y轴,x轴上下不同

4.6 注释

4.6.1 annotate() 注释

plt.annotate('this is zhusi', xy=(0,2), xytext=(0,10),arrowprops=dict(facecolor='r', headlength=5 ,headwidth=5, width=2 ) )  注释函数 

.annotate()参数,第一个str类型参数,为注释文本内容,xy参数为元祖,设置注释所在坐标位置,xytext参数为元祖,设置注释文本所在内容,arrowprops为显示注释图形,dict()为箭头,包含多个参数,常用的 facecolor设置注释颜色,headlength设置箭头长度,headwidth设置箭头宽度,width设置箭尾宽度

x=np.linspace(-10,10,100)

y=x*x

plt.plot(x,y)

plt.ylim(ymin=0)

plt.annotate('this is zhusi', xy=(0,2), xytext=(0,10),arrowprops=dict(facecolor='r', headlength=5 ,headwidth=5, width=2  ) )

4.6.2 文本注释

plt.text(x, y , str , family=' ' , size= , color=  ,style= , weight= , bbox=dict(facecolor= , alpha=0.2)) 文本注释,设置文本的一些参数,x,y为设置文本的起始坐标,str为文本的字符串内容,family设置字体的样式如宋体等,size设置大小,color设置颜色,style设置样式如倾斜,weight设置粗体等款细,bbox设置文本的边框,在dict()中设置参数,facecolor设置边框颜色,alpha设置透明度。

x=np.linspace(-10,10,100)

y=x*x

plt.plot(x,y)

plt.ylim(ymin=0)

plt.text(0, 25, 'zhushi', family='serif' , size=20, color='r' ,style='italic', weight='black', bbox=dict(facecolor='r',alpha=0.2))

plt.text(0,5,'duibi')

4.6.3公式

matplotlib自带 mathtext引擎,不用安装Tex系统

参考matplotlib公式手册

.text() 方法,将str参数传入数学公式的文本编辑内容,参考matplotlib文档规则

ax.text(2,4, r'$ \alpha_i \beta_j \pi \lambda \omega $',size=15)

ax.text(4,4 ,r'$ \sin(0)=\cos(\frac{\pi} {2}) $',size=15)

ax.text(2,2, r'$ \lim_{x \rightarrow y} \frac{1}{x^3} $',size=15)

ax.text(4,2,r'$ \sqrt[4]{x}=\sqrt{y} $',size=15)

5.填充区域

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

推荐阅读更多精彩内容