第二天matplotlib绘图

bar直方图

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
y=2**x + 10
#face柱子里面的颜色 默认蓝色facecolor
#柱子有边框 默认黑色edgecolor
plt.bar(x,y,facecolor='#9999ff',edgecolor='white')
#zip将x,y结合在一起 可以同时读取
for x,y in zip(x,y) :
    #top显示在柱子内部顶端,bottom显示在柱子外部低端 即柱子上面
    plt.text(x,y,'%.2f'% y,ha='center',va='bottom')
plt.show()

在这里插入图片描述

matplotlib contour等高线图

import matplotlib.pyplot as plt
import numpy as np

def f(x,y) :
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
#产生一些数据,从-3到3一百个点
x=np.linspace(-3,3,100)
y=np.linspace(-3,3,100)

#meshgrid把x,y坐标传入一个网格中
X,Y=np.meshgrid(x,y)
#生成X,Y,再把他们传入绘制等高线,
# cmap代表图的颜色,hot用一个比较热的颜色表示图中的颜色
#8的意思是生成8+1个等高线
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)

C=plt.contour(X,Y,f(X,Y),8,color='black',linewidth=0.5)
#inline是说数字在等高线外面还是里面
plt.clabel(C,inline=True,fontsize=10)
plt.xticks(())
plt.yticks(())

plt.show()

在这里插入图片描述

3D绘图

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig =plt.figure()
ax=Axes3D(fig)
#从-4到4,间隔0.25生成一串数字
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
X,Y=np.meshgrid(x,y)
#第三维的值Z
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

#绘制3D图形,传入X,Y,Z,rstride代表x方向,cstride代表y方向改变后,色块会变大,cmap颜色,做彩虹的颜色
ax.plot_surface(X,Y,Z,rstride = 1,cstride=1,cmap=plt.get_cmap('rainbow'))
#zdir引射方向,offset映射位置
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow')
ax.set_zlim(-2,2)
plt.show()

在这里插入图片描述要改他边框在ax.plot_surface(X,Y,Z,rstride = 1,cstride=1,cmap=plt.get_cmap(‘rainbow’))内加一个参数edgecolor=‘black’

subplot

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

#在figure中创建了两行两列的小的绘图,1代表在第一个位置
plt.subplot(2,1,1)
plt.plot([0,1],[0,1])

plt.subplot(2,3,4)
plt.plot([0,1],[0,1])

plt.subplot(2,3,5)
plt.plot([0,1],[0,1])

plt.subplot(2,3,6)
plt.plot([0,1],[0,1])

plt.show()

在这里插入图片描述

动态图

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import animation

fig,ax=plt.subplots()

x=np.arange(0,2*np.pi,0.01)
line, = ax.plot(x,np.sin(x))
#改变y对应的一些值
def animate(i):
    line.set_ydata(np.sin(x+i/10))
    return line
#要把曲线传回,所以还要有一个初始化函数
def init():
    line.set_ydata(np.sin(x))
    return line,
#动态作图方法,需要有一个初始化函数,两张图片间隔是20毫毛,动态刷新
ani = animation.FuncAnimation(fig=fig,func=animate,init_func=init,interval=20)
plt.show()

会出现一个正弦函数的动态图,函数一直在往左边走。动态绘制正弦曲线。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值