matplotlib相关
准备工作
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace( , ,被分成多少个点) 前面两个数字为区间两端
y=
plt.figure(num=编号,figsize=( , ))
plt.plot(x,y,color=' ',linewidth=线的宽度,linestyle='线的样式')
plt.show()
显示图片
坐标轴相关
对于坐标轴的文字部分
plt.xlim(( , )) 设置定义域
plt.ylim(( , )) 设置相对于的范围
plt.xlabel( ) 设置x坐标名称
plt.ylabel( ) 设置y坐标名称
更改坐标的数值和间距
ticks=np.linspace( , , ) 先写区间,再写有多少的小的小的坐标
plt.xticks(ticks) x坐标,要改y的话需要更改前方字母
或者直接一一对应写好plt.yticks[ ],[ ] 后方代替前方
plt.xticks(()) 括号里什么也不写,坐标消失
ax=plt.gca()
ax.spines[’ 填写上下左右’].set_color(‘none’) 使边框消失
需要定义x y轴
ax.xaixs.set_ticks_position( )
ax.yaixs.set_ticks_position( )
ax.spines[ 填写上下左右 ].srt_position((‘data’, 选择的原点对应坐标)) 设置了原点的位置上
legend图例
plt.plot(x,y,color= ,linewidth= ,linestyle= ,label=’ 图例的名字 ')
plt.legend(handles= ,labels= ,loc= 位置 ) 显示图例
annotation标注
plt.scatter( ) 显示点
plt.plot([ ],[ ]) 左框写横坐标,右框写纵坐标 两点连线
plt.annoatate(‘标注的内容’, xy=( , ), xycoords=‘data’(表示使用被注释对象的坐标系),xytext=(填写相对xy偏移的单位△x和△y), textcoords=‘offset points’代表以点为单位,fontsize=字体大小,arrowprops=dict(arrowstyle=’ ',connectionstyle= ))
plt.text(横坐标,纵坐标,文本内容)
tick能见度 修改挡住数据的情况
for label in ax.get_xticklabels()+ax.get_yticklables():
label.set_fontsize
label.set_bbox(dict(facecolor=’ 前面的颜色是什么 ‘,edgecolor=’ 边框的颜色’ ,可以写None’,alpha=透明度 )) 意思是给坐标刻度一个小方框
折线图
x=np.linspace( , ,被分成多少个点) 前面两个数字为区间两端
y= 折线表达式
散点图
n= 规定数量
X=np.random.normal( ,n)
Y=np.random.normal( ,n)
T=np.arctan2(Y,X) 上色
plt.scatter(X,Y,s= ,color=T,alpha=透明度)
柱状图
n=
X=np.arange(n) 生成从1到n的自然数
Y=(1-X/float(n)*np.random.uniform( ,n)
plt.bar(X,Y,facecolor=填充色,edgecolor=边框色)
在柱状图上加入数字
for x,y in zip(X,Y)
plt.text(x+数字距柱高高度,y+数字距柱高高度,'%.2f%y,ha= ,va=) va和ha指对其方式 有center bottom
等高线图
X,Y=np.meshgrid(x,y)
plt.contourf(X,Y,f(X,Y),8,alpha=透明度,cmap=plt.cm.hot) 最后一项也有cold颜色
C=plt.contour(X,Y,f(X,Y),8,colors=’ ',linewidth=)
8的含义是等分成多少份 数字越大,图案颜色越丰富
plt.clabel(C,inline=True,fontsize= ) inline若为F,则数值标注与等高线重叠,若为T则在线上
lmage图片
import matplotlib.pyplot as plt
import numpy as np
a = np.array([0.313660827978, 0.365348418405, 0.423733120134,
0.365348418405, 0.439599930621, 0.525083754405,
0.423733120134, 0.525083754405, 0.651536351379]).reshape(3,3)
plt.imshow(a,interpolation=‘nearest’,cmap=‘bone’,origin=‘lower’) nearest代表了色块的样式
plt.colorbar(shrink= ) 旁边的图例可以调整比例
画图
准备工作
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
开始
fig = plt.figure() 定义画框
ax = Axes3D(fig) 形成3D坐标
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin®
ax.plot_surface(X,Y,Z,rstride=这是跨度,数字越大色块比较大,颜色衔接较弱,cstride=,cmap=plt.get_cmap(’ 填充的色 '))
ax.contour(X,Y,Z,zdir=‘写x,y,z中的一个,代表了向哪方面投影’,offset= 把投影出的平面图放置的坐标位置 ,cmap=’ 填充的色’)
subplot分格
多合一
import matplotlib.pyplot as plt
plt.figure()
plt.subplot(行数,列数,第几个位置) 创建一个格子
plt.plot([x轴范围],[y轴范围])
在不均等分配的情况下(即有一大多小或者两种以上规格的格子),第几个位置该数值应该忽略其他尺寸带来的格子数值感染,单独看在此规格下格子排第几个
复合分格
import matplotlib.gridspec as gridspec
方法一
plt.figure()
a=plt.subplot2grid((分成多少行,分成多少列),(从第几行第几列开始作图),colspan=列的跨度 ,rowspan=行的跨度) 后两个参数默认为1
a.plot([ ],[ ]) 画小图 左格子填两点横坐标,右格子填两点纵坐标
a.set_title( ) 设置小图标题
方法二
plt.figure()
gs=gidspec.GridSpec( )
a=plt.subplot(gs[ , ]) 中括号中填写索引 -1代表最后一行/列
方法三
plt.subplots(行,列,sharex=True表示共享x轴,sharey=True表示共享y轴)
f, ((第一行所有表格),(第二行所有表格)) = plt.subplots( , , sharex=True, sharey=True)
图中图
准备工作 画底图
fig=plt.figure()
x=
y=
left,bottom,width,height= , , , 填写小数意思为图占figure的大小和位置
ax1=fig.add_axes([left,bottom,width,height])
画小图和画大图
步骤一样,需要修改坐标位置和大小即可
plt.axes( , , , ]) 也可以用这一步定义left,bottom,width,height的数值
添加次坐标轴
先定义一个y和x的关系
y1=ax+b
y2 = -1 * y1 形成倒置的数据
fig, ax1 = plt.subplots()
ax2 = ax1.twinx() 将坐标轴反向
设置两条线的数据
plt.show()
animation动画
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
fig, ax = plt.subplots()
中间的数据待补充捏
ani = animation.FuncAnimation(fig=figure对象,func=创建图像函数,frames=插入多少帧,init_func=init最开始的一帧位置,interval=20隔多少毫秒的更新一次,blit=False f代表整张图的坐标都要随变化而变化)
plt.show()