Matplotlib库 pyplot子库学习

Matplotlib库 pyplot子库学习

  记录Matplotlib库基本绘图方法和常用图表的绘制。

基本绘图操作

import Matplotlib.pyplot as plt
plt.plot(x,y,format_string,*kwargs)
'''
参数说明
x,y:列表或数组
format_string:格式字符串  
    color=['b' 'g' 'r' 'c' 'm' 'y' 'k' 'w']
    linestyle=['-' '--' '-.' ':']
    marker=['.' 'o' 'v' '^' '<' '>' '1' '2' '3' '4' 's' 'p' '*' 'h' 'H' '+' 'x' 'D' 'd' '|' '_' '.' ',']
*kwargs:可传入多组x,y,格式和前边一致
'''
显示中文

  pyplot不支持中文,要用rcParams修改字体

(1)整个程序全部改变
import matplotlib
matplotlib.rcParams['font.family']='SimHei' # 黑体
matplotlib.rcParams['font.style']='normal' # 风格正常 'italic'斜体
matplotlib.rcParams['font.size']=15 # 字体大小
plt.rc('axes', unicode_minus=False) # 显示负号

(2)中文输出
增加一个属性fontproperties
plt.xlabel('时间',fontproperties='SimHei',fontsize=20)
图片上文本显示
# 添加坐标轴说明
plt.xlabel()
plt.ylabel()

# 添加标题
plt.title()

# 添加任意位置的文本
plt.text(x0,y0,r'$mu=100$')
    x0,y0:文字左下角的坐标
    r'':显示的文字,支持latex语法

# 添加箭头
plt.annotate(r'',xy=(2,3),xytext=(2,4),arrowprops=dict)
    r'':文字
    xy=arrow_crd:箭头位置,元组类型
    xytext=text_crd:文字位置,元组类型
    arrowprops={'facecolor':'b','shrink':0.1,'width':2}}:箭头格式,字典类型

箭头

子区域绘图

(1)

plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=2)
    (3,3):区域被划分为33列的九块子区域
    (1,0):该图片占据第二行第一列,从0开始
    colspan=2:图片横着跨越2个子区域
    rowspan=2:图片竖着跨越2个子区域

子区域绘图1

(2)

import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(3,3)
ax1 = plt.subplot(gs[0,:]) # :表明列全选
ax2 = plt.subplot(gs[1:,:-1]) # :-1 0到倒数第二列
ax3 = plt.subplot(gs[1:,2])

ax1.plot(a,b,'o-')
ax2.plot(2*a,2*b,'o-')

子区域绘图2

常用图表绘制

plt.plot() 坐标系 极坐标系
plt.boxplot() 箱形图
plt.bar() 条形图
plt.barh() 横向条形图
plt.pie() 饼图
plt.scatter(x,y) 散点图
plt.hist() 直方图

其它的
plt.psd()  功率谱密度图
plt.cohere()  X-Y相关性函数图
plt.step() 阶跃图
plt.specgram() 频谱图
plt.contour() 等值图
plt.vline() 垂直图
plt.stem() 柴火图
plt.plot_date() 数据日期
饼图
plt.pie(sizes,explode,labels,autopct,shadow,startangle)
plt.axis('equal') #正圆饼图

'''
sizes:各比例大小 [15,30,45,10]
explode:哪一块扣出  (0,0.1,0,0)
labels:标签  ['A','B','C','D']
autopect:百分数显示方式 '%1.1f%%'
shadow:二维或三维 True/False
startangle:起始角度 饼的排序方式D->C->B->A,D从设置的角度开始
'''
plt.pie(x=[15,30,45,10],explode=(0,0.2,0,0),labels=['A','B','C','D'],autopct='%1.1f%%',shadow=True,startangle=0)

饼图

直方图
plt.hist(a,bins,density=True)
'''
a: 数组
bin: 直方图中有几个直立的方形 10,从amin->amax画出bin个区间
density : True 以概率形式表示 / False 以个数形式表示
'''
a = np.random.randn(1000)
plt.hist(data,bins=10,density=True)

直方图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值