matplotlib基础

1 figure( )

常用来设置图的大小,名称及颜色。

https://blog.csdn.net/m0_37362454/article/details/81511427

2 subplot( )

Matplotlib的可以把很多张图画到一个显示界面,即设置画布划分以及图像在画布上输出的位置

当想给子图加名称标签时可以在subplot( )函数后面加set_title( )函数,如plt.subplot(2,3,i+1).set_title(i+1,fontsize=20),还可直接设置字体大小。

 1 t=np.arange(0.0,2.0,0.1)
 2 s=np.sin(t*np.pi)
 3 plt.subplot(2,2,1) #要生成两行两列,这是第一个图plt.subplot('行','列','编号') 这里可不用逗号分隔,直接写
 4 plt.plot(t,s,'b--')
 5 plt.ylabel('y1')
 6 plt.subplot(2,2,2) #两行两列,这是第二个图
 7 plt.plot(2*t,s,'r--')
 8 plt.ylabel('y2')
 9 plt.subplot(2,2,3)#两行两列,这是第三个图
10 plt.plot(3*t,s,'m--')
11 plt.subplot(2,2,4)#两行两列,这是第四个图
12 plt.plot(4*t,s,'k--')
13 plt.show()

subplot前面俩参数指定的是一个画板被分割成的行和列,后面一个参数则指的是当前正在绘制的编号!

https://www.jianshu.com/p/de223a79217a

3 subplots( )

与subplot( )功能类似,只不过subplots( )指定图的位置时不用1 2 3,而是用类似定义矩阵元素位置的方法。

1 t=np.arange(0.0,2.0,0.1)
2 s=np.sin(t*np.pi)
3 figure,ax=plt.subplots(2,2)
4 ax[0][0].plot(t,s,'r*')
5 ax[0][1].plot(t*2,s,'b--')
6 plt.show()

 用法大全:http://www.360doc.com/content/18/0327/19/17157244_740682308.shtml

           https://www.cnblogs.com/zhizhan/p/5615947.html

4 text()

在画布的任意位置添加文本。在柱状图绘制时常与zip()函数结合使用。

# !/usr/bin/python
# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10, 11, 1)
y = x ** 2
plt.plot(x, y)
plt.text(-3, 20, "function: y = x * x", size=15, alpha=0.2)
plt.text(-3, 40, "function: y = x * x", size=15, \
         family="fantasy", color="r", style="italic", weight="light", \
         bbox=dict(facecolor="r", alpha=0.2))
plt.show()
# 第一个参数是x轴坐标,第二个参数是y轴坐标,
# 第三个参数是要显式的文本内容,若是小数,则用%.0f' % y,其中y是标注的数字,0表示不显示小数后面的数值,1就表示显示小数后面一位,
# alpha设置字体的透明度  family设置字体  size设置字体的大小  style 设置字体的风格
# wight 字体的粗细  bbox 给字体添加框,alpha 设置框体的透明度, facecolor 设置框体的颜色
# ha='center', va= 'bottom'代表horizontalalignment(水平对齐)、verticalalignment(垂直对齐)的方式。

参考:https://blog.csdn.net/you_are_my_dream/article/details/53455256

官方链接:http://matplotlib.org/api/text_api.html#matplotlib.text.Text

5 xlim( ) ylim( )

xlim(xmin, xmax)和ylim(ymin, ymax)来设置x,y坐标范围

6 plt.xscale()

可用来改变坐标轴的刻度,设置为非线性坐标。

参考:https://blog.csdn.net/claroja/article/details/70898253

7 对于做图时不能显示汉字的问题.

a. 若在Windows系统下,可将如下代码放到程序开头即可。

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

b. 若在linux系统下,输入fc-list :lang=zh确认系统拥有中文字体文件

在程序开头引入字体如下: 注意fname中是输入如上指令后显示的linux中文字体.

import matplotlib.pyplot as plt
import matplotlib as mpl
zhfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf')
plt.plot([1, 2, 3])
plt.xlabel(u'x轴标签', fontproperties=zhfont)
plt.show()
View Code

8 plt.legend( )

加上它,label才会显示。

9  当画热力图时,如数字显示重叠,可添加plt.tight_layout()函数

posted on 2019-05-14 15:50  吃我一枪  阅读(186)  评论(0编辑  收藏  举报

导航